我有三个页面-主页,http://127.0.0.1:8000/,显示一个段落句子和标题中的两个链接。还有披萨清单,http://127.0.0.1:8000/pizzas。现在,我正在尝试为http://127.0.0.1:8000/pizzas页面上的每个披萨添加链接,这样用户就可以点击它们,看看有哪些配料可用。我被困住可能是因为我决定使用路径而不是我正在阅读的这本书中使用的url()来映射url。
Error:NoReverseMatch at /pizzas。
找不到'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 %}
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
发布于 2018-06-07 04:38:25
您的url标记应为{% url 'pizza_w_toppings' pizza.id %}
。如果你查看documentation,你会看到url标签的所有可能的变体。
例如,假设您有一个视图app_views.client,它的URLconf接受一个客户机ID (在这里,
()是视图文件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标记中包含名称空间,如下所示:
{% url 'your-namespace:app-views-client' client.id %}
https://stackoverflow.com/questions/50728997
复制相似问题