微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

带有模型对象过滤器的 Django 外键 limit_choice_to

如何解决带有模型对象过滤器的 Django 外键 limit_choice_to

我试图在我的 Django 管理工具中限制外键的选择。我偶然发现了 limit_choices_to 模型的 ForeignKey 选项:https://docs.djangoproject.com/en/3.2/ref/models/fields/#django.db.models.ForeignKey.limit_choices_to

在我的模型中,我有一个 Question_logic,它有一个属性 ifLogic,它是模型 Options 的外键(代表问题选项的可能答案)。

# Models.py

class Options(models.Model):
    question = models.ForeignKey(Question,on_delete=models.CASCADE)
    option = models.CharField(max_length=200)

class Question_logic(models.Model):
    question = models.ForeignKey(Question,on_delete=models.CASCADE)
# error here:
    ifLogic = models.ForeignKey(Options,on_delete=models.CASCADE,limit_choices_to=Options.objects.filter(question=question))
    thenLogic = models.CharField(max_length=200)

但是这种方法不起作用,因为显然你不能在模型定义本身中引用一个对象,我收到了这个错误

django.core.exceptions.AppRegistryNotReady: Models aren't loaded yet.

我的逻辑非常简单:我希望管理员仅在与特定问题相关的选项之间进行选择。我该如何正确实施?

谢谢。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。