我已经按照django教程进入了tutorial05.
我试图不像教程所说的那样显示空轮询,所以我添加了这样的过滤条件:
class IndexView(generic.ListView):
...
def get_queryset(self):
return Question.objects.filter(
pub_date__lte=timezone.now(),
choice__isnull=False
).order_by('-pub_date')[:5]
Run Code Online (Sandbox Code Playgroud)
但是这返回了两个完全相同的对象.
我认为choice__isnull = False引起了问题,但不确定.
Vla*_*lov 13
choice__isnull导致问题.它导致与参加choice表(剔除掉questions没有choices),那是这样的:
SELECT question.*
FROM question
JOIN choice
ON question.id = choice.question_id
WHERE question.pub_date < NOW()
Run Code Online (Sandbox Code Playgroud)
你可以检查query属性QuerySet.所以如果你有question两个choices,那么你会得到question两次.distinct()在这种情况下你需要使用方法:queryset.distinct().
| 归档时间: |
|
| 查看次数: |
2523 次 |
| 最近记录: |