Python search()只接受2个参数(给定1个)
views.pyPython search()只接受2个参数(给定1个),python,django,django-models,django-forms,django-templates,Python,Django,Django Models,Django Forms,Django Templates,views.py def search(request,csv_export): if request.method == 'POST': reports = Report.objects.filter(user__in=user_list).order_by('-created_date_time', '-id') ''''' some code '''''' if csv_export: response = Ht
def search(request,csv_export):
if request.method == 'POST':
reports = Report.objects.filter(user__in=user_list).order_by('-created_date_time', '-id')
'''''
some code
''''''
if csv_export:
response = HttpResponse(mimetype='text/csv')
filename = "%s-%s.csv" % ('incident-reporter', datetime.datetime.now().strftime('%Y-%m-%d'))
response['Content-Disposition'] = 'attachment; filename=%s' % filename
writer = UnicodeWriter(response, encoding='utf-8')
writer.writerow(headerrow)
for writerow in report_list:
writer.writerow(writerow)
return response
return render(request,'search.html',{'report':report})
url.py
urlpatterns = patterns(
'incident.views',
(r'^$', 'index'),
(r'^search/$', 'search',{"csv_export": False}),
(r'^csv_export/$', 'csv_export',{"csv_export": True}),
(r'^what/$', 'what'),
(r'^where/$', 'where'),
(r'^when/$', 'when'),
(r'^media/$', 'media'),
)
我得到这个错误:
“位于/report/search/search()的TypeError正好接受2个参数(给定1个)”
请参见下面我的回溯:
Traceback:
File "/usr/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
111. response = callback(request, *callback_args, **callback_kwargs)
File "/usr/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
23. return view_func(request, *args, **kwargs)
Exception Type: TypeError at /report/search/
Exception Value: search() takes exactly 2 arguments (1 given)
编辑:URL.py在问题中更新如果
{"csv_export": False}
就是你调用搜索函数的方式,很明显
搜索函数有两个参数:(请求、csv_导出)。您只发送一个参数(csv\u导出)
您的函数调用应该如下所示:
{"request": something, "csv_export": False}
这个问题可能起源于其他地方(我认为是在
{%url%}
调用中),但它应该很容易解决:
def search(request, csv_export=False):
然后在URL.py中:
(r'^search/$', 'search'), # <- more elegant, isn't it?
(r'^csv_export/$', 'csv_export', {"csv_export": True}),
(r'^search/$,'search'),#你能上传/report/search
url的视图吗?你能发布更多的url.py吗?@Bibhas,url.py postedIs是你url中所有的url.py?@Bibhas,我更新了完整的url.py如果我删除了请求,我会收到这个错误“全局名称‘请求’没有定义”,不了解函数调用这个怎么样?(r“^search/$”、“search”、{“request”:“search”、“csv_export”:False}),而对于csv_export,我将url.py设置为r“^search/$”、“csv_export”、{“request”:“csv_export”、“csv_export”:True}),它给出了相同的错误。知道可能是什么问题吗?@Neatu这不是Django的工作方式。查看回溯中最后调用的第二个函数:request
无论如何都会传递给view函数。您只能使用url(…)
语法指定额外的参数。