URL 中 Django DetailView 的附加参数
Additional params in URL for Django DetailView
在 DetailView 的 Django 文档中,它显示 URL 如下:
url(r'^(?P<slug>[-\w]+)/$', ArticleDetailView.as_view(),
name='article-detail'),
url(r'^(?P<pk>[-\w]+)/$', ArticleDetailView.as_view(), name='article-detail'),
也就是说,它只允许关键字 slug
或 pk
。
除了 slug
或 pk
之外,是否可以在 URL 中添加其他关键字,例如:
url(r'^(?P<author_slug>[-\w]+)/(?P<slug>[-\w]+)/$', ArticleDetailView.as_view(), name='article-detail'),
注意 URL 中的附加参数 author_slug
。
是的,是的。您可以通过视图中的 kwargs
字典访问其他 kwargs(假设 CBV)。
例如,在基于 class 的视图中,您可以 self.kwargs['memes']
请注意,这不会自动说...为您执行对象查找(如果您正在编写详细信息视图)。为此,您必须覆盖 get_object()
。
在 DetailView 的 Django 文档中,它显示 URL 如下:
url(r'^(?P<slug>[-\w]+)/$', ArticleDetailView.as_view(), name='article-detail'),
url(r'^(?P<pk>[-\w]+)/$', ArticleDetailView.as_view(), name='article-detail'),
也就是说,它只允许关键字 slug
或 pk
。
除了 slug
或 pk
之外,是否可以在 URL 中添加其他关键字,例如:
url(r'^(?P<author_slug>[-\w]+)/(?P<slug>[-\w]+)/$', ArticleDetailView.as_view(), name='article-detail'),
注意 URL 中的附加参数 author_slug
。
是的,是的。您可以通过视图中的 kwargs
字典访问其他 kwargs(假设 CBV)。
例如,在基于 class 的视图中,您可以 self.kwargs['memes']
请注意,这不会自动说...为您执行对象查找(如果您正在编写详细信息视图)。为此,您必须覆盖 get_object()
。