在尝试复制 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']