【问题标题】:Django NoReverseMatch error for Tutorial Part 3教程第 3 部分的 Django NoReverseMatch 错误
【发布时间】:2018-11-02 18:38:50
【问题描述】:

您好,我一直试图弄清楚为什么我的程序中不断出现 NoReverseMatch 错误,但似乎无法弄清楚原因。我仔细检查了我的 question.id 是否正确并检查了 urls.py 以确保没有任何问题,但是当我添加 {% url %} 时我不断收到错误消息。我也浏览了几乎所有其他 stackoverflow 帖子,但仍然无法找出问题所在。

非常感谢任何帮助!

索引.html

    {% if latest_question_list %}
    <ul>
       {% for question in latest_question_list %}
        <li><a href="{% url 'polls:detail' question_id %}">{{ 
        question.question_text }}</a></li>
        {% endfor %}
        </ul>
    {% else %}
        <p>No polls are available.</p>
    {% endif %}

投票/urls.py

    from django.conf.urls import url
    from . import views

    app_name = 'polls'

    urlpatterns = [
         url('', views.index, name='index'),
         url('<int:question_id>', views.detail, name='detail'),
         url('<int:question_id>/results/', views.results, name='results'),
         url('<int:question_id>/vote/', views.vote, name='vote'),
         url('specifics/<int:question_id>/', views.detail, name='detail'),

]

【问题讨论】:

  • 请发布完整的错误信息。
  • 您可能应该在{% url ... %} 标签中将question_id 替换为question.id
  • 不,这并没有解决我之前实际上有 question.id 并且只是更改它以查看它是否有所作为。
  • 嗯,错误表明question_id不存在,或者是一个空字符串。

标签: html django python-3.x django-templates django-views


【解决方案1】:

不应该是question.question_id之类的吗? 在您的锚标记中

【讨论】:

  • 你的意思是像 'polls:detail' question.question_id 因为我很确定 id 是问题的一个属性。
  • @AdvaitKulkarni:是的,但你写的是question_id(带下划线),而不是点。
  • @WillemVanOnsem 那么是 question_question.id 还是 question.question_id?
  • 两者都不是。这取决于您尝试访问并传递给 url 方法的属性。如果您使用的是id 属性,那么它将是question.id。如果您使用question_id 属性,question.question_id
【解决方案2】:

我解决了这个问题。问题是 virtualenv 是在 Python 2.7 中设置的,而我正在编写专为 Python 3.6 设计的教程。一旦我更新了环境的 python 版本并复制了所有文件,它就可以正常工作了。

【讨论】:

    猜你喜欢
    • 2016-12-24
    • 2018-11-13
    • 1970-01-01
    • 1970-01-01
    • 2015-06-21
    • 2017-08-21
    • 1970-01-01
    • 2015-06-15
    • 2016-01-14
    相关资源
    最近更新 更多