在Django使用窗体 - 获得()失踪1个人需要的位置参数:“头”
问题描述:
目前在Django工作,努力做一个形式简单的教程,但表单提交时我收到一个错误。在Django使用窗体 - 获得()失踪1个人需要的位置参数:“头”
这里是我的urls.py:
from .views import*
urlpatterns = [
url(r'^name/', get_name, name='TheName'),
url(r'^name/present/', present, name='Present'),
]
这里有意见:
def get_name(request):
if request.method == 'POST':
form = NameForm(request.POST)
if form.is_valid():
return HttpResponseRedirect
else:
form = NameForm()
return render(request, 'home/name.html', {'form': form})
def present(request):
return render(request, 'home/present.html')
这里是形式:
class NameForm(forms.Form):
your_name = forms.CharField(label='Your name', max_length=100)
这里是name.html:
<form action="present/" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="Submit" />
</form>
这里是我的present.html:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>{{ your_name }}</title>
</head>
<body>
</body>
</html>
后提交被点击,和错误消息回溯:
Environment:
Request Method: POST
Request URL: http://localhost:8000/name/present/
Django Version: 1.11.4
Python Version: 3.6.2
Installed Applications:
['django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles']
Installed Middleware:
['django.middleware.security.SecurityMiddleware',
'django.contrib.sessions.middleware.SessionMiddleware',
'django.middleware.common.CommonMiddleware',
'django.middleware.csrf.CsrfViewMiddleware',
'django.contrib.auth.middleware.AuthenticationMiddleware',
'django.contrib.messages.middleware.MessageMiddleware',
'django.middleware.clickjacking.XFrameOptionsMiddleware']
Traceback:
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/core/handlers/exception.py" in inner
41. response = get_response(request)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/utils/deprecation.py" in __call__
142. response = self.process_response(request, response)
File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/django/middleware/clickjacking.py" in process_response
32. if response.get('X-Frame-Options') is not None:
Exception Type: TypeError at /name/present/
Exception Value: get() missing 1 required positional argument: 'header'
任何帮助,将不胜感激!
答
你需要告诉那里成功的表单提交后重定向。你只是做return HttpResponseRedirect
这是无效的,相反,它应该是:
return HttpResponseRedirect(the_path_to_redirect_to)
请阅读文档中关于HttpResponseRedirect。
我现在意识到我的错误!谢谢你! – SkillaPop