Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django-多个<;pk>;在URL.py和DetailView中_Python_Django - Fatal编程技术网

Python Django-多个<;pk>;在URL.py和DetailView中

Python 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.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_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'),