Python Django URL错误
错误: 找不到带参数(u'rtcl',datetime.date(2012,1,3),datetime.date(2012,1,4),u'')和关键字参数“{}”的“费用报告”的反面 在myurl.py中Python Django URL错误,python,django,Python,Django,错误: 找不到带参数(u'rtcl',datetime.date(2012,1,3),datetime.date(2012,1,4),u'')和关键字参数“{}”的“费用报告”的反面 在myurl.py中 url(r'^charges_report/(?P<company_name>[\s\w\d-]+)/(?P<start_date>[\s\w\d-]+) /(?P<close_date>[\s\w\d-]+)/(?P<batch
url(r'^charges_report/(?P<company_name>[\s\w\d-]+)/(?P<start_date>[\s\w\d-]+) /(?P<close_date>[\s\w\d-]+)/(?P<batch_no>[\s\w\d-]+)/$',
'admin.reports.views.charges_report',
name='charges_report'),
在视图中
def charges_report(request, company_name, start_date, close_date, batch_no=None,):
委员会注意到:
- 如果在导入任何视图函数时出现任何错误,则会导致reverse()引发错误,即使该视图函数不是您要反转的视图函数
- “确保您在URLconf文件中引用的任何视图都存在,并且可以正确导入。”
- “不要包含引用尚未编写的视图的行。”-
其中一个可能是您的问题。您的URL使用关键字参数,但您在
反向传递位置参数
尝试:
您还需要格式化日期以匹配URL模式中的正则表达式。现在,您正在将文本字符串datetime.date(2012,1,3)
作为start\u date
传递
将start\u date
(和close\u date
)更改为与正则表达式匹配的内容,如下所示:
kwargs['start_date'] = "{}".format(start_date)
kwargs['close_date'] = "{}".format(close_date)
尝试使用kwarg字典而不是位置参数。我不理解你的问题。你是说当你用某个URL调用你的应用程序时,Django会给出一个错误“找不到关键字参数“{}”?你能给我们准确的测试用例和准确的错误消息文本吗?我有一个名为charges_report的url,它包含4个参数。这4个参数来自表单。当用户从表单中提交这4个参数时,该参数将重定向到费用报告。现在,如果用户没有提供最后一个参数(最后一个参数是可选的),那么我得到了错误。代码的哪一部分触发了错误?确切的错误消息文本可能会包含堆栈跟踪,它将告知错误发生的位置。当用户提交表单时,错误正在发生。我的意思是在请求时。POST,我重复一遍,代码的哪一部分触发了错误?我的意思是,到底是哪一行,哪一个表达式,在哪一个函数中?重要的是你要提供信息,你不能指望我们了解你的想法或你的屏幕。我有一个名为charges_report的url,它包含4个参数。这4个参数来自表单。当用户从表单中提交这4个参数时,该参数将重定向到费用报告。现在,如果用户没有提供最后一个参数(最后一个参数是可选的),那么我就得到了错误。对于参数为“()”和关键字参数为“{'start\u date':datetime.date(2012,1,1),'close\u date':datetime.date(2012,1,31)”的“charges\u report”,我仍然得到了相同的错误反转未找到“批次号”:u“”,“公司名称”:u'rtcl'}。
kwargs = dict()
kwargs['company_name'] = company_name
kwargs['start_date'] = start_date
kwargs['close_date'] = close_date
kwargs['batch_no'] = batch_no
return HttpResponse(reverse('charges_report',kwargs=kwargs))
kwargs['start_date'] = "{}".format(start_date)
kwargs['close_date'] = "{}".format(close_date)