gpt4 book ai didi

python - Django (?P\d+) 与

转载 作者:行者123 更新时间:2023-11-28 20:14:21 32 4
gpt4 key购买 nike

我有这个 post_list.html 文件:(忽略第二个 'blog:post_detail' url)

{% for post in post_list %}
<h1><a href="{% url 'blog:post_detail' post.pk %}">{{ post.title }}</a></h1>
<div class="date">
<p>Published on: {{post.published|date:"D M Y"}}</p>
</div>
<a href="{url 'blog:post_detail' post.pk}">Comments: {{post.approve_comments.count}}</a>
{% endfor %}

urls.py 中,我尝试按以下方式使用 re_path:

re_path(r'^posts/<int:pk>/$', views.PostDetailView.as_view(), name='post_detail'),

当我运行服务器时,我得到 NoReverseMatch at/ 错误:Reverse for 'post_detail' with arguments '(1,)' not found. 1 pattern(s) tried: ['posts/<int:pk>/$']


但是,如果我将 re_path 替换为 url<int:pk>(?P<pk>\d+)它完美地工作:

url(r'^posts/(?P<pk>\d+)/$', views.PostDetailView.as_view(), name='post_detail'),

最佳答案

因为你的django不是2.0+

django >=2.0

django 2.0推荐使用路径

path(r'^posts/<int:pk>/$', views.PostDetailView.as_view(), name='post_detail')

如果你想使用正则表达式,比如django<2.0

re_path(r'^posts/(?P<pk>\d+)/$', views.PostDetailView.as_view(), name='post_detail'),

Django <2.0

url(r'^posts/(?P<pk>\d+)/$', views.PostDetailView.as_view(), name='post_detail'),

关于python - Django (?P<pk>\d+) 与 <int :pk>,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50218539/

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