我怎样才能避免在 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 中没有反向匹配的主要内容,如果未能解决你的问题,请参考以下文章