[英]Django DetailView show last if no pk in url
使用基于类的DetailView,有没有一种方法可以在调用url时说“如果未指定pk”,只需使用MyModel.object.last()
作为对象引用?
url(r'^(?:(?P<pk>\d+)/)?detail/$', views.MyDetailView.as_view()),
class MyDetailView(DetailView):
model = MyModel
if self.kwargs['pk'] == False:
self.object = MyModel.object.last()
我正在运行Django 1.11
您可以覆盖get_object
方法。 注意,您应该检查pk
是否在self.kwargs
设置,而不是是否等于False
。
def get_object(self):
if 'pk' not in self.kwargs:
return MyModel.objects.last()
return super(MyDetailView, self).get_object()
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.