我在Django
数据库中使用mysql
。
我的表Question
包含以下字段:id, text, section_id
,而我的表CompletedQuestion
包含以下字段:id, question_id
其中字段question_id
是Question.id
的外键。
我的models.py
包含:
class Question(mixins.OrdMixin, mixins.EqMixin, models.Model):
section = models.ForeignKey('Section',
on_delete=models.CASCADE,
related_name='owner')
text = models.TextField()
class CompletedQuestion(models.Model):
question = models.ForeignKey('Question',
on_delete=models.CASCADE,
related_name='question_source')
我想检查
CompletedQuestion
中是否有完整的问题,这些问题属于section_id
中的特定Question
。我当前的查询如下,但这不是正确的查询:
quest_id = Question.objects.filter(section_id = section_id)
最佳答案
您可以使用__isnull=True|False
过滤器来检查是否存在任何相关模型,我不太了解您的意思,但是类似:
Question.objects.filter(section_id=section_id, question_source__isnull=False)
或者来自另一个方向,例如:
CompletedQuestion.objects.filter(question__section_id=section_id) \
.values_list("question_id",flat=True).distinct()
获取具有任何相关CompletedQuestions的问题ID的列表