2012-06-10 65 views
0

我困在django的簡單註冊表單中。Django註冊表單拋出 - 異常值:給定的用戶名必須設置

ValueError at /register/ 
The given username must be set 
Request Method:POST 
Request URL:http://127.0.0.1:8000/register/ 
Django Version:1.4 
Exception Type:ValueError 
Exception Value:The given username must be set 

這裏是我的views.py:當我完成我的登記表我得到這個錯誤

def register_page(request): 
if request.method == 'POST': 
    form = RegistrationForm(request.POST) 

    if form.is_valid(): 
     user = User.objects.create_user(
     username=form.cleaned_data['username'], 
     password=form.cleaned_data['password1'], 
     email=form.cleaned_data['email'] 
     ) 
     return HttpResponseRedirect('/register/success/') 
else: 
    form = RegistrationForm() 
    variables = RequestContext(request, {'form': form 
    }) 
return render_to_response(
'registration/register.html', 
variables 
) 

,這是我的註冊模板:

{% extends "base.html" %} 
    {% block title %}User Registration{% endblock %} 
    {% block head %}User Registration{% endblock %} 
    {% block content %} 
    <form method="post" action=".">{% csrf_token %} 
     {{ form.as_p }} 
     <input type="submit" value="register" /> 
    </form> 
    {% endblock %} 

和我的URL模式:

urlpatterns = patterns('', 
(r'^$', main_page), 
(r'^user/(\w+)/$', user_page), 
(r'^login/$', 'django.contrib.auth.views.login'), 
(r'^logout/$', logout_page), 
(r'^site_media/(?P<path>.*)$', 'django.views.static.serve', 
{'document_root': site_media}), 
(r'^register/$', register_page), 
(r'^register/success/$', direct_to_template, 
{'template': 'registration/register_success.html'}), 
) 

我找不到這個問題的任何事情。我會很感激一些指導,我是新的Django。

回答

0

的問題是在我的forms.py文件:

def clean_username(self): 
username = self.cleaned_data['username'] 
if not re.search(r'^\w+$', username): 
    raise forms.ValidationError(u'Username can only contain ' 
    'alphanumeric characters and the underscore.') 
try: 
    User.objects.get(username=username) 
except User.DoesNotExist: 
    return username 
raise forms.ValidationError(u'Username is already taken.') 

通過代碼去正確indending問題後是固定的。正如我說我在Django是新和Python

感謝

相關問題