【问题标题】:Can't save django object to mysql (ManyToManyField)无法将 django 对象保存到 mysql (ManyToManyField)
【发布时间】:2011-08-18 01:51:54
【问题描述】:
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()

这些对象都是创建的,但是当我尝试保存点击时它失败了,我不知道为什么?

cl.save() # 失败

我按照此处描述的步骤操作,但似乎看不到缺少什么。 http://docs.djangoproject.com/en/dev/topics/db/models/#many-to-many-relationships

【问题讨论】:

  • 您收到什么错误?
  • 我解决了这个问题。我收到以下错误:(1054,“'字段列表'中的未知列'文章'”)问题是syncdb不会更新创建的表,因此需要先删除它们,然后重新创建。 stackoverflow.com/questions/293300/…

标签: django


【解决方案1】:

您是否尝试过先保存 art 和 eusr 项目 - 即:

art.save()
eusr.save()

在调用 cl.save() 之前

【讨论】:

  • create 会自动执行此操作,所以这不是问题。
猜你喜欢
  • 2011-01-12
  • 1970-01-01
  • 2019-02-06
  • 1970-01-01
  • 2014-05-18
  • 2016-09-09
  • 2018-01-04
  • 2014-01-21
  • 1970-01-01
相关资源
最近更新 更多