[英]django: How do i save form in django without the django forms?
[英]Django forms: how do I display the initial blank form?
我有这个查看功能:
def search(request):
if request.method == 'GET':
form = SearchForm(request.GET)
if form.is_valid():
last_name = form.cleaned_data['last_name']
first_name = form.cleaned_data['first_name']
lawyers = Lawyer.objects.all()
[ other if statements ]
....
else:
form = SearchForm()
return render_to_response('search.html', {'form': form})
我认为,当页面加载时, else
语句将以初始空白表格执行。 但这种情况并非如此。 要最初显示该表单,我必须在第一个if
内添加它:
def search(request):
if request.method == 'GET':
form = SearchForm(request.GET)
if form.is_valid():
last_name = form.cleaned_data['last_name']
first_name = form.cleaned_data['first_name']
lawyers = Lawyer.objects.all()
[ other if statements ]
....
form = SearchForm()
return render_to_response('search.html', {'form': form})
else:
form = SearchForm()
return render_to_response('search.html', {'form': form})
您能帮忙为什么第一个if
永远不会为假吗? 谢谢。
整个视图功能在这里
每个普通的HTTP请求(例如,当您访问http://stackoverflow.com时 )都是GET请求。 通常,在表单更改某些数据时,最好使用POST作为表单的方法。
您应该阅读: 什么时候使用POST以及什么时候使用GET?
当您使用method=GET
发布表单时,实际上并没有更改初始请求中的method=GET
:它也是method=GET
。
您可以在表单中使用method=POST
,然后if语句将对此进行检查,或者您可以根据表单要求检查是否存在必填字段first_name
, last_name
或两者。
if 'first_name' in request.GET or 'last_name' in request.GET:
form = SearchForm(request.GET)
else:
form = SearchForm()
您可能希望将其抽象为表单本身,修改__init__
方法,但不必这样做。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.