如果你的URLconf看起来像这样:
url(r'^(?P<slug>[a-zA-Z0-9-]+)/$', MyView.as_view(), name = 'my_named_view')
那么该子弹将在你的视图函数(例如“ get_queryset”)中可用,如下所示:
self.kwargs['slug']
传递给该as_view
方法的每个参数都是View类的实例变量。这意味着要添加slug
作为参数,你必须在子类中将其创建为实例变量:
# myapp/views.py
from django.views.generic import DetailView
class MyView(DetailView):
template_name = 'detail.html'
model = MyModel
# additional parameters
slug = None
def get_object(self, queryset=None):
return queryset.get(slug=self.slug)
那应该MyView.as_view(slug='hello_world')
起作用。