Django说这个模型和另一个模型没有外键,但它确实有

2024-06-28 10:52:14 发布

您现在位置:Python中文网/ 问答频道 /正文

你能帮我弄清楚Django为什么会出现这个错误吗?在

SolutionsForLanguagesApp.LanguageLevel: (fields.E336) The model is used as an in termediate model by 'SolutionsForLanguagesApp.UserProfile.languages', but it does not have a foreign key to 'UserProfile' or 'Language'.

我很困惑,因为正如您所见,LanguageLevel中已有一个Language的外键:

class LanguageLevel(models.Model):
    language = models.ForeignKey(Language)
    level = models.ForeignKey(Level)

    class Meta:
        unique_together = (('level', 'language'),)

你知道该怎么办吗?在

编辑-添加了用户配置文件:

^{pr2}$

Tags: thedjangofieldsmodelmodels错误levellanguage
1条回答
网友
1楼 · 发布于 2024-06-28 10:52:14

您的LanguageLevel模型缺少ForeignKeyUserProfile

class LanguageLevel(models.Model):
    language = models.ForeignKey(Language)
    level = models.ForeignKey(Level)
    # Add Foreign Key to UserProfile
    userprofile = models.ForeignKey(UserProfile)

    class Meta:
        unique_together = (('level', 'language'),)

另外,我不确定unique_together约束是否是您想要的-这意味着只有一个用户可以有任何一个语言/级别的组合。更可能的约束是('userprofile', 'language'),这样一种语言只能映射到一个用户一次。在

相关问题 更多 >