【发布时间】:2021-09-18 09:42:06
【问题描述】:
我有一个复杂的关系场景,如下所示。我想要与JobChecklistAnswer.question 上的JobChecklistAnswer.job_checklist.checklist 相关的limit_choices_to Questions。
如何将那些Questions 过滤为Q object (or callable as the docs say)?
class Checklist(models.Model):
name = models.CharField(_("name"), max_length=150)
description = models.CharField(_("description"), max_length=150)
class Question(models.Model):
checklist = models.ForeignKey(Checklist, on_delete=models.CASCADE)
question = models.CharField(_("question"), max_length=200)
class Job(models.Model):
...
...
class JobChecklist(models.Model):
job = models.ForeignKey(Job, on_delete=models.CASCADE)
checklist = models.ForeignKey(Checklist, on_delete=models.CASCADE)
class JobChecklistAnswer(models.Model):
job_checklist = models.ForeignKey(JobChecklist, on_delete=models.CASCADE)
# FIXME: Add limit_choices_to query question
question = models.OneToOneField(ChecklistItem, on_delete=models.CASCADE)
answer = models.TextField(_("answer"))
【问题讨论】:
-
你不能用这个来限制选择。您需要在显示选项的表单中限制选项。
标签: python django django-models django-queryset django-q