gpt4 book ai didi

python - 不能有任何带有 slugs 的 URL。无反向匹配

转载 作者:行者123 更新时间:2023-12-01 03:36:08 25 4
gpt4 key购买 nike

我是一个初学者,很难处理 django slug url 系统和这些 NoReverseMatch 错误,即使在阅读了文档之后,这些错误对我来说也毫无意义。

我有一个 Django 项目。在其中一个 View 中,我将 geoJSON 功能列表传递到模板中,并将它们显示在 map 上。我想让每个功能都充当指向 View 的可点击“链接”,该 View 将显示有关它的内容。以下是模板的一部分,其中包含我想要单击的功能:

//part of the template:
<script type="text/javascript">
...
function onEachFeature(feature, layer) {
layer.on('click', function (e) {
window.location.href = "{% url 'polls:areadetail' feature.properties.myslug%}";
});
}

(我已确认 feature.properties.myslug 实际上包含我想要的 slug)。

我想要访问的 url 模式:

urlpatterns = [...
url(r'^areadetail/(?P<areaslug>[-\w]+)/$', views.AreaDetail, name='areadetail'),]

以及它所涉及的 View :

def AreaDetail(request, areaslug):
area = get_object_or_404(Area, nameslug=areaslug)
return render(request, 'polls/areadetail.html', {'area':area})

我遇到的问题是,通过执行我显示的操作并将该 url 引用放置在上面显示的模板中,我希望能够单击该模板,该模板根本无法工作,给我一个“错误”模板渲染期间的整页错误信息开头为:

NoReverseMatch at /polls/areas/ Reverse for 'areadetail' with arguments '('',)' and keyword arguments '{}' not found. 1 pattern(s) tried: [u'polls/areadetail/(?P[-\w]+)/$']

任何帮助将不胜感激

<小时/>

编辑第 1 部分:正如我在回复 falsetru 时所说的那样,我确信 feature.properties.myslug 实际上有一个 slug 表达式。EDIT2:根据我在 django 票证中发现的内容,我对 urls.py 中的 url 正则表达式进行了轻微更改,从 (?P<areaslug>[-\w]+)/$(?P<areaslug>[-\w]+)?/$现在错误是:

Page not found (404) Request Method: GET Request URL: http://127.0.0.1:8000/polls/areadetail// Raised by: polls.views.AreaDetail

有没有可能因为 "{% url 'polls:areadetail' feature.properties.myslug%}"位在 javascript 内部,feature.properties.myslug 没有正确插入那里?就像这里需要某种括号?

最佳答案

根据错误消息,feature.properties.myslug为空或没有值。

确保 feature.properties.myslug 从 View 中正确传递。

  • 暂时注释掉{% url .. %}
  • 打印 {{ feature }}{{ feature.properties }}{{ feature.properties.myslug }} 查看如果缺少哪一部分。
  • 相应地修复 View 。
  • 取消注释{% url .. %}

关于python - 不能有任何带有 slugs 的 URL。无反向匹配,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40370304/

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