我怎样才能避免在 Django 中没有反向匹配

how can i avoid no reverse match in django

我在练习 Django 的时候不知道为什么会出现这个错误occurred no revers match

我将 shops.html 代码修改为 link 披萨,但是在修改之后,出现了这个错误

Reverse for 'pizza' with arguments '('',)' not found. 1 pattern(s) tried: ['shops/(?P<pizza_id>[0-9]+)$']

第一个代码:

<ul>
    {%for shop in shops%}

         <li>
            {{shop}}
         </li>

第二个密码:

<ul>
    {%for shop in shops%}

     <li>
        <a href="{% url 'pizzas:pizza' pizza.id %}">{{shop}}</a></li>

如果需要,我已经在 Pastebin 中发布了所有代码。

你的问题是你使用了 pizza.id 而不是 shop.pk 而实际上并没有定义。
改变这个

{%for shop in shops%}
 
 <li>
    <a href="{% url 'pizzas:pizza' pizza.id %}">{{shop}}</a></li>
 
{%empty%}
 
 <li>currently there is no pizza available</li>
{%endfor%}

{%for shop in shops%}
 
 <li>
    <a href="{% url 'pizzas:pizza' shop.pk %}">{{shop}}</a></li>
 
{%empty%}
 
 <li>currently there is no pizza available</li>
{%endfor%}