Python 如何为DetailView指定pk或slug以外的内容

Python 如何为DetailView指定pk或slug以外的内容,python,django,django-views,django-1.3,Python,Django,Django Views,Django 1.3,我想知道,在Django 1.3中使用DetailView时,是否可以使用pk或slug之外的东西 例如,我目前有: url(r'^mymodel/(?P<pk>\d+)/$', MyDetailView.as_view()) url(r'^mymodel/(?P\d+/$),MyDetailView.as_view()) 作为我的网址。比如说我想要的是: url(r'^mymodel/(?P<name>\d+)/$', MyDetailView.as_view())

我想知道,在Django 1.3中使用DetailView时,是否可以使用pk或slug之外的东西

例如,我目前有:

url(r'^mymodel/(?P<pk>\d+)/$', MyDetailView.as_view())
url(r'^mymodel/(?P\d+/$),MyDetailView.as_view())
作为我的网址。比如说我想要的是:

url(r'^mymodel/(?P<name>\d+)/$', MyDetailView.as_view())
url(r'^mymodel/(?P\d+/$),MyDetailView.as_view())

其中name将是模型中的一个字段。是否有必要让DetailView使用它来“抓取”我想要的对象并将其传递给我的模板?

slug在Django中没有任何特殊意义。它只是标识行的字段的名称。如果您的slug被称为其他名称,例如
name
,只需在视图子类中指定
name
作为
slug\u字段
属性即可

如果您需要更复杂的内容,您可以始终覆盖视图类中的
get\u object

您可以使用属性“pk\u url\u kwarg”


url.py

url(r'^mymodel/(?P<name>\d+)/$', MyDetailView.as_view())
供参考视图uml设计
(单击详细视图)

覆盖是我在这里需要做的全部事情。谢谢另外请注意,url行必须如下所示:url(r'^mymodel/(?P\d+/$),MyDetailView.as_view())除了
slug\u字段
之外,您还可以设置
slug\u url\u kwarg
,这样命名参数就不会像用户mpaf建议的那样是“slug”。
class MyDetailView(LoginRequiredMixin, DetailView):
    model = ModelName
    pk_url_kwarg = "name" # primary key(to identify object uniquely)
    template_name = "template.html"