【问题标题】:Django ManyToMany Through not syncing or migratingDjango ManyToMany 通过不同步或迁移
【发布时间】:2012-10-06 16:55:21
【问题描述】:

我有这个模型(为简洁起见,此处截断):

class Meal(models.Model):
    host = models.ForeignKey(User, related_name="cooking")
    cost = models.IntegerField(default=1)

    summary = models.CharField(max_length=1024, default="A good dinner")

    diners = models.ManyToManyField(User, through='Attendance',
    related_name="diners", blank=True)

当我同步它时,diners 字段被完全忽略。它没有出现在数据库中,运行syncdb时也没有错误。就好像它不存在一样。用户和出勤表都很好。

我在尝试使用 South 添加此字段时发现了这个问题,所以我也尝试了它作为替代方法。

有什么想法吗? 谢谢

【问题讨论】:

    标签: django many-to-many models migrate django-syncdb


    【解决方案1】:

    在添加 diners 字段之前,您是否已经运行了 syncdb fyrir Meal?

    因为 syncdb 不会改变现有表,您可以在此处阅读:

    Django docs

    旁注 - 我个人没有使用过 south,但我在开发时使用过 Django evolution

    编辑:

    看了你的评论,我想我知道问题出在哪里了。

    through 与 ManyToManyField 一起使用时,Django 不会向该表添加字段,所有必要的信息都在 attendance 表中。

    【讨论】:

    • 不,我首先使用南迁移,这有助于数据库更改。然后我废弃了整个数据库进行调试并重新运行了syncdb。不过还是谢谢。
    • 我认为可能是这种情况,但这似乎很奇怪,我在文档中没有注意到这一点。我非常希望这是一个非规范化的字段,我可以简单地检查它的计数。我想我会在出勤或其他方面做一个模型经理。不过谢谢!
    猜你喜欢
    • 2013-11-30
    • 2019-07-09
    • 2012-06-05
    • 2022-07-22
    • 1970-01-01
    • 2011-01-27
    • 1970-01-01
    • 2012-06-12
    • 2021-06-07
    相关资源
    最近更新 更多