gpt4 book ai didi

python - Django - urls.py 中的多个 与 DetailViews

转载 作者:行者123 更新时间:2023-11-28 22:38:28 25 4
gpt4 key购买 nike

我正在尝试使用 Django Generic display views 构建脚本.

我的 urls.py

url(r'^page/(?P<pk>[0-9]+)/$', PageDetails.as_view(), name='page-details'),

我的views.py

class PageDetails(DetailView):
model = Pages

def get_context_data(self, **kwargs):
context = super(PageDetails, self).get_context_data(**kwargs)
return context

问题如何设置多个 <pk>在我的网址中这样吗?

url(r'^page/(?P<pk>[0-9]+)/subpage/(?P<pk>[0-9]+)$', PageDetails.as_view(), name='page-details'),

在我看来,我需要从第一个和第二个中获取数据 <pk> .

最佳答案

将 url 中的第二个 pk 参数更改为其他内容,例如 pk_alt:

^page/(?P<pk>[0-9]+)/subpage/(?P<pk_alt>[0-9]+)$

然后,url 参数 pk_alt 将作为 self.kwargs 字典的一部分在您的 View 函数中可用,因此您可以使用以下方式访问它:

self.kwargs.get('pk_alt', '')

然后您可以将您的 View 更新为如下内容:

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 }} 在模板中访问替代模型

关于python - Django - urls.py 中的多个 <pk> 与 DetailViews,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35556525/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com