我正在使用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)
答案 0 :(得分:1)
您可以使用__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列表