在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

+0

我现在意识到我的错误!谢谢你! – SkillaPop