2011-05-03 41 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