2013-04-28 5 views
1

Я пытаюсь написать мой метод, чтобы добавить объект типа пользователя при регистрации. Вот код:ValueError: данное имя пользователя должно быть установлено

views.py

def registration(request): 
c= {} 
c.update(csrf(request)) 
state = "Please Register below..." 
username = None 
email = None 
password = None 
user_success = None 
user_created = None 
if request.POST: 
    username = request.POST.get('username') 
    email = request.POST.get('email') 
    password = request.POST.get('password') 
    print "username ",username 

user = authenticate(username=username, password=password) 
if user is not None: 
    if user.is_active: 
     user_created = True 
    else: 
     user_created = False 
else: 
     user = User.objects.create_user(username=username,password=password,email=email) 
     user.save() 
     user.is_active = True 
     user_success = True 

return render_to_response('register.html',{'success':user_success,'created':user_created,'username': username},context_instance = RequestContext(request)) 

forms.py

class RegistrationForm(forms.Form): 

username = forms.CharField() 
email = forms.EmailField() 
password = forms.CharField() 

шаблоны/register.html является:

{% extends "base.html" %} 
{% block pageContent %} 
<div class="container"> 


    <form action="/register" method="post"> 

      {% csrf_token %} 
      username: 
      <input type="text" name="username" value="{{ username}}" /><br /> 
      password: 
      <input type="password" name="password" value="" /><br /> 
      Email: 
      <input type="text" name="email" value="{{email}}" /><br /> 

      <input type = 'submit' value='Register' /> 
    </form> 


</div> 
{% endblock %} 

Может кто-нибудь, пожалуйста, помогите мне пятно ошибка? Также дайте мне знать, если я делаю регистрационное право

ответ

0

Значение username в этом пункте должно оцениваться как True.

user = User.objects.create_user(username=username,password=password,email=email) 
#          ^^^^^^^^ this can't be a bool() false 

Почему? Это сообщение об ошибке очень специфичны .. это называется из this specific place в Джанго AUTH:

def create_user(self, username, email=None, password=None, **extra_fields): 
     """ 
     Creates and saves a User with the given username, email and password. 
     """ 
     now = timezone.now() 
     if not username: 
      raise ValueError('The given username must be set') 

Вы можете быть 100% положительным именем пользователя является правильное значение? Похоже, что это пустая строка.

+0

Я нашел ошибку. Ошибка была в отступе view.py. 'if user is None 'часть кода должна быть только в том случае, если тип запроса POST. Так что требуется отступы. Спасибо, что пытались помочь –

0

Я нашел ошибку. Ошибка была в отступе view.py.

if user is not None: 

часть кода должна быть только в том случае, если тип запроса POST. Так что требуется отступы.