django-- keyword arguments '{}' not found错误

在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', '深度学习', '数据处理']
部署运行你感兴趣的模型镜像

今天在做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了。



您可能感兴趣的与本文相关的镜像

PyTorch 2.5

PyTorch 2.5

PyTorch
Cuda

PyTorch 是一个开源的 Python 机器学习库,基于 Torch 库,底层由 C++ 实现,应用于人工智能领域,如计算机视觉和自然语言处理

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值