今天在做Django的一个task时,遇到了如下的错误:
Reverse for ''cal.views.month'' with arguments '(2013, 1)' and keyword arguments '{}' not found.
先说一下我的url配置是:
(r"^month/(\d+)/(\d+)/(prev|next)/$", "month"), (r"^month/(\d+)/(\d+)/$", "month"), (r"^month$", "month"),
出错页面的调用:
<a href="{% url cal.views.month year month.n %}">{{ month.name }}</a>
看了一下Django的文档,发现问题如下:
本来的url配置一般状况下是没有问题的,但是{% url %}这个命令要reverse url的配置,即通过 cal.views.month这个view找到对应的url,这时候django就会发现,找到了3个有month这个view的url的配置, 他不知道哪个市对的,所以默认是最后一个配置即(r"^month$", "month"),这时候,你可以看到这个配置的url是没有参数的,所以django才会报错说我的arguments是 '(2013, 1)' , 但是url上没有参数的。
纠正的方法就是使用命名url,即给每个配置的url起个唯一的名字,如下:
url(r"^month/(\d+)/(\d+)/(prev|next)/$", month, name="month_index"),
url(r"^month/(\d+)/(\d+)/$", month, name="month_current"),
url(r"^month$", month, name="month_default"),
那么在页面上调用就相应的改成:
<a href="{% url month_current year month.n %}">{{ month.name }}</a>
这样django搜索的时候,就能准确的找到有参数的url了。
在Django开发中遇到'Reverse for 'cal.views.month' with arguments '(2013, 1)' and keyword arguments '{}' not found.'的错误。问题源于多个url配置匹配同一视图但参数不匹配。解决方案是采用命名url,为每个url配置赋予唯一的名字,例如:'month_index', 'month_current', 'month_default',然后在页面调用时使用正确的命名,如'{% url month_current year month.n %}',这样可以确保Django能找到正确带参数的url。"
113504473,10295644,PyTorch数据集与数据加载器详解:Dataset与Dataloader,"['PyTorch', '深度学习', '数据处理']
891

被折叠的 条评论
为什么被折叠?



