如何过滤已回答/未回答的问题?

时间:2021-04-16 04:24:26

标签: python django

在尝试复制 Stack Overflow 未回答的 QuerySet 功能时,我被困在如何 这将在表级别完成?当 Question 模型在表本身上没有对 Answer 的任何外键引用时,我将如何实施 QuerySet 以返回所有未回答的问题?只有在查询了单个问题时,才能访问答案的反向关系。

class QuestionStatusQuerySet(models.QuerySet):

    def unanswered(self):
        pass

    def newest(self):
        pass


class Question(models.Model):
    title = models.CharField(unique=True, max_length=50)
    body = models.TextField()
    dated = models.DateField(default=date.today)
    likes = models.IntegerField(default=0)
    user_account = models.ForeignKey(
        'users.UserAccount',
        on_delete=models.SET_NULL,
        null=True, blank=True,
        related_name="questions"
    )
    tags = models.ManyToManyField(Tag, related_name='questions')

    objects = models.Manager()
    dateranges = DateRangeQuerySet.as_manager()
    status = QuestionStatusQuerySet.as_manager()


    class Meta:
        ordering = ['-dated']
        default_manager_name = "objects"

    def __str__(self):
        return self.title


class Answer(models.Model):
    question = models.ForeignKey(
        Question,
        on_delete=models.CASCADE,
        related_name="answers"
    )
    response = models.TextField()
    dated = models.DateField(auto_now_add=True)
    likes = models.IntegerField(default=0)
    user_account = models.ForeignKey(
        'users.UserAccount',
        on_delete=models.SET_NULL,
        null=True, blank=True,
        related_name="answers"
    )

    class Meta:
        ordering = ['-likes']

1 个答案:

答案 0 :(得分:0)

也许您可以尝试使用 isnull

Aude