這些模型是:
class Question(models.Model):
question_text = models.CharField(max_length=200)
class Choice(models.Model):
question = models.ForeignKey(Question, on_delete=models.CASCADE)
choice_text = models.CharField(max_length=200)
votes = models.IntegerField(default=0)
有些問題沒有管理員指定的選項。我不想顯示這樣的問題。
如果解決方案是覆寫 get_queryset,那么該怎么做呢?還是獲取所有問題 ( Question.objects.all()) 并在視圖中過濾它們更好?
class QuestionList(generic.ListView):
model = Question
template_name = 'polls/index.html'
context_object_name = 'latest_question_list'
def get_queryset(self):
# How?
uj5u.com熱心網友回復:
您可以queryset在視圖上設定屬性
class QuestionList(generic.ListView):
model = Question
queryset = Question.objects.filter(choice__isnull=False).distinct()
或覆寫 get_queryset
class QuestionList(generic.ListView):
model = Question
def get_queryset(self):
return super().get_queryset().filter(choice__isnull=False).distinct()
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/322281.html
標籤:姜戈 django-models
