我在Django数据库中使用mysql

我的表Question包含以下字段:id, text, section_id,而我的表CompletedQuestion包含以下字段:id, question_id其中字段question_idQuestion.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的列表

07-26 05:55