反转' x'未找到。 ' X'不是有效的视图函数或模式名称

时间:2018-06-06 20:25:23

标签: django django-views django-urls

我有三个页面 - 主页http://127.0.0.1:8000/,在标题中显示一个段落句子和两个链接。和比萨列表,http://127.0.0.1:8000/pizzas。现在我正在尝试在http://127.0.0.1:8000/pizzas页面上为每个披萨添加链接,以便可以点击它们并查看可用的配件。我可能会因为我决定使用路径而不是url()来映射网址而感到困惑,这是我以后使用的书。

错误:/ pizzas的NoReverseMatch 反向' pizza_w_toppings'未找到。 ' pizza_w_toppings'不是有效的视图函数或模式名称。

pizzas.html -



{% extends "pizzeria_app/base.html" %}

{% block content %}
<h1> Available Pizzas : </h1>
<ul>
{% for pizza in pizzas %}
 <li> <a href = {% url 'pizza_w_toppings' %}> {{pizza}}</a><li>
{% empty %}
  <p> We're outta Pizzas. next time bro! <p>
{% endfor %}
</ul>

{% endblock content %}
&#13;
&#13;
&#13;

app / urls.py:

urlpatterns = [
#homepage
path('', views.index),
#show available pizzas
path('pizzas', views.pizzas),
path('pizzas/<int:pizza_id>', views.pizza_w_toppings, name="pizza_w_toppings")

查看: 我是StackOverflow的新手,无法弄清楚如何添加我的views.py。我附了一张照片,对不起 views.py screenshot

1 个答案:

答案 0 :(得分:1)

您的网址标记应为{% url 'pizza_w_toppings' pizza.id %}。如果您查看documentation,则会看到所有可能的网址标记变体。

  

例如,假设您有一个视图app_views.client,其URLconf   获取客户端ID(此处,client()是视图文件中的方法   app_views.py)。 URLconf行可能如下所示:

     

path('client/<int:id>/', app_views.client, name='app-views-client')

     

如果此应用程序的URLconf包含在项目的URLconf下   这样的道路:

     

path('clients/', include('project_name.app_name.urls'))

     

...然后,在模板中,您可以创建一个指向此视图的链接:

     

{% url 'app-views-client' client.id %}

     

模板标签将输出字符串/ clients / client / 123 /.

如果您使用名称空间,请确保在您的网址标记中包含名称空间,如下所示:

{% url 'your-namespace:app-views-client' client.id %}