Python Django-多个<;pk>;在URL.py和DetailView中
我正在尝试使用创建一个脚本 我的URL.pyPython Django-多个<;pk>;在URL.py和DetailView中,python,django,Python,Django,我正在尝试使用创建一个脚本 我的URL.py url(r'^page/(?P<pk>[0-9]+)/$', PageDetails.as_view(), name='page-details'), class PageDetails(DetailView): model = Pages def get_context_data(self, **kwargs): context = super(PageDetails, self).get_conte
url(r'^page/(?P<pk>[0-9]+)/$', PageDetails.as_view(), name='page-details'),
class PageDetails(DetailView):
model = Pages
def get_context_data(self, **kwargs):
context = super(PageDetails, self).get_context_data(**kwargs)
return context
问题
如何在我的URL中像这样设置多个
url(r'^page/(?P<pk>[0-9]+)/subpage/(?P<pk>[0-9]+)$', PageDetails.as_view(), name='page-details'),
url(r'^page/(?P[0-9]+)/子页面/(?P[0-9]+)$),PageDetails.as_view(),name='page-details'),
在我的视图中,我需要从第一个和第二个
将url中的第二个pk
参数更改为其他参数,例如pk\u alt
:
^page/(?P<pk>[0-9]+)/subpage/(?P<pk_alt>[0-9]+)$
然后,您可以将视图更新为以下内容:
class PageDetails(DetailView):
model = Pages
def get_context_data(self, **kwargs):
context = super(PageDetails, self).get_context_data(**kwargs)
page_alt = Pages.objects.get(id=self.kwargs.get('pk_alt', ''))
context['page_alt'] = page_alt
return context
然后,您可以使用
{{page_alt}}
访问模板中的替代模型,如果您需要url中的两个参数,请尝试以下操作:
url(r'^page/(?P<pk_1>[0-9]+)/subpage/(?P<pk_2>[0-9]+)$', PageDetails.as_view(), name='page-details'),
url(r'^page/(?P[0-9]+)/子页面/(?P[0-9]+)$),PageDetails.as_view(),name='page-details'),
然后您有pk_1
和pk_2
作为kwargs
url(r'^page/(?P<pk_1>[0-9]+)/subpage/(?P<pk_2>[0-9]+)$', PageDetails.as_view(), name='page-details'),