2011-05-03 40 views
0
class MyArticle(models.Model): 
    id = models.CharField(max_length=150, primary_key=True) 

    def __unicode__(self): 
     return self.id 

class UserProfile(models.Model): 
    username = models.CharField(max_length=765) 
    clicks = models.ManyToManyField(MyArticle, through='ClickEvent') 

    def __unicode__(self): 
     return self.username 

class ClickEvent(models.Model): 
    article = models.ForeignKey(MyArticle) 
    user = models.ForeignKey(UserProfile) 
    timestamp = models.DateTimeField() 



art = MyArticle.objects.create(id = article_id) 
eusr = UserProfile.objects.create(username = username) 
cl = ClickEvent(article = art, user = eusr, timestamp = datetime.now()) 
cl.save() 

这些对象都是创建的,但是当我尝试保存点击失败时,我不明白为什么?无法将django对象保存到mysql(ManyToManyField)

cl.save()#失败

我跟着这里描述的步骤,但似乎无法看到缺少了什么。 http://docs.djangoproject.com/en/dev/topics/db/models/#many-to-many-relationships

+1

什么错误,你接受? – rzetterberg 2011-05-03 21:46:12

+0

我解决了问题。 我收到以下错误: (1054,“字段列表中的未知列'文章'”) 问题是syncdb不更新创建的表,因此它们需要先删除,然后再次创建。 http://stackoverflow.com/questions/293300/unknown-column-user-id-error-in-django-view – Oliver 2011-05-03 23:19:59

回答

0

您是否尝试过先保存艺术和EUSR项目 - 即:

art.save() 
eusr.save() 

之前调用cl.save()

+0

'create'这是否自动,所以这不是问题。 – 2011-05-03 22:13:14