我用Django创建了一个表单,如下所示:
class advancedsearch(forms.Form):
choices = forms.ChoiceField (label="choices", choices = ("1", "2", "3"), required= False)
现在我试着从以下角度来使用它:
def advancedsearch(request):
# if request.method == "POST":
# search = advancedsearch(request.POST, request.FILES)
# if search.is_valid():
# return HttpResponseRedirect(reverse("view.designs")) # UPDATE REDIRECT
# else:
# print "FORM IS NOT VALID"
# # GET request
# else:
# search = advancedsearch()
# return render_to_response("advancedsearch.html", {
# "search": search,
# }, context_instance=RequestContext(request,{}))
# # generic case
search = advancedsearch()
return render_to_response("advancedsearch.html", {
"search": search,
}, context_instance=RequestContext(request, {}))
我得到的错误是advancedsearch() takes exactly 1 argument (0 given)
我不认为我需要向函数传递一个参数——但是看起来我需要……我应该传递什么呢
您为窗体和视图指定了相同的名称。所以视图递归地调用自己,没有任何东西可以阻止它
表单不需要参数,但是由于视图与模型同名,Python认为您需要调用视图,而视图需要参数
您应该重命名模型或视图
search = advancedsearch()
被称为视图方法advancedsearch()
,而不是表单你可以这样做:
在视图中:
这会解决你的问题
相关问题 更多 >
编程相关推荐