Django:在通用视图中处理空查询集
Django: Handling empty querysets in generic view
我有一个通用视图,有时 returns 什么都没有。
在这种情况下,我如何才能有效地处理它并引发 404?
我的方法成功了,但是访问了数据库。
class MyListView(ListView):
template_name = 'template/quest.html'
def get_queryset(self, *args, **kwargs):
query = (
MyModel.objects
.filter(...)
.filter(...)
)
if query.exists():
return query
else:
raise Http404
将allow_empty
设置为False
:
class MyListView(ListView):
allow_empty = False
template_name = 'template/quest.html'
def get_queryset(self, *args, **kwargs):
return MyModel.objects.filter(...)
如果 get_queryset()
的结果为空(长度为 0),这将引发 Http404
。
我有一个通用视图,有时 returns 什么都没有。
在这种情况下,我如何才能有效地处理它并引发 404?
我的方法成功了,但是访问了数据库。
class MyListView(ListView):
template_name = 'template/quest.html'
def get_queryset(self, *args, **kwargs):
query = (
MyModel.objects
.filter(...)
.filter(...)
)
if query.exists():
return query
else:
raise Http404
将allow_empty
设置为False
:
class MyListView(ListView):
allow_empty = False
template_name = 'template/quest.html'
def get_queryset(self, *args, **kwargs):
return MyModel.objects.filter(...)
如果 get_queryset()
的结果为空(长度为 0),这将引发 Http404
。