【问题标题】:django reverse error NoReverseMatchdjango反向错误NoReverseMatch
【发布时间】:2023-03-21 04:55:01
【问题描述】:

鉴于以下情况

views.py

return redirect('order-review', order=order.id)

urls.py

url(r'^review/$', 'checkout.views.review', {'order': '0'},  name="order-review"),

针对

views.py

def review(request, order):

真的有明显的解决办法吗?我只是看不出我有什么问题,并且 django docco 在传递变量时对示例略显轻描淡写。

【问题讨论】:

    标签: django reverse


    【解决方案1】:

    它无法解析,因为您的 url 模式实际上硬编码了 order 值(它始终为“0”)。

    您必须提供一种从 URL 本身更改 order 值的方法。

    准确地说:

    urls.py

    url(r'^review/$', 'checkout.views.review', {'order':'0'},  name="order-review-default-fallback"),
    url(r'^review/(?P<order>[\d]+)/$', 'checkout.views.review', {},  name="order-review"),
    

    应该可以解决你的问题。

    【讨论】:

    • 谢谢,这正是我所需要的。以为通过提供默认值我是在告诉它要修改什么,但现在我明白为什么不是这样了。
    • 其实,如果你给视图函数关键字参数设置一个默认值('def review(request, order=0)'),它就会如你所愿。
    猜你喜欢
    • 2014-01-20
    • 1970-01-01
    • 1970-01-01
    • 2020-12-19
    • 2015-10-24
    • 2017-08-05
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多