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

Posted

技术标签:

【中文标题】我怎样才能避免在 django 中没有反向匹配【英文标题】:how can i avoid no reverse match in django 【发布时间】:2022-01-10 09:37:00 【问题描述】:

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

我修改了shops.html代码来链接披萨,但是修改后出现了这个错误

未找到带有参数“('',)' 的“pizza”的反向操作。尝试了 1 种模式:['shops/(?P[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 中发布了所有代码。

【问题讨论】:

【参考方案1】:

您的问题是,您使用 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%

【讨论】:

idk 这是什么pk,为什么要用shop,能解释一下吗? @Nicolas_Darksoul pk 代表primary key,您可以使用id @Nicolas_Darksoul 这能解决你的问题吗? 是的,我得到了什么 pk 但我有点困惑(这是我的第一个代码) shop 是字典中的 shop 意思是 Pizza.objects.order_by("date_added") 所以 shop.id 是如何工作的,为什么不我们在比萨饼中使用 id 和比萨饼,顺便说一句,我们在编写 url 'pizzas:pizza' 时如何使用 shop 名字在书中是相似的,现在我误解了,谢谢你的帮助,现在我明白了,对不起,我问你这与问题无关,但你能告诉我如何才能习惯 django 代码

以上是关于我怎样才能避免在 django 中没有反向匹配的主要内容,如果未能解决你的问题,请参考以下文章

Iphone,我怎样才能避免看门狗杀死我的应用程序需要很长时间才能启动?

VueJS 道具 - 我怎样才能避免“类”属性继承?

我怎样才能避免额外的内部连接来优化这个查询?

我怎样才能避免这个css3背景循环跳转?

Django:密码重置时没有反向匹配[重复]

*** 错误:我怎样才能避免它或将这个 DFS 变成一个迭代的?