2017-09-30 22 views
1

Hier ist meine forms.py,Django wenn Benutzername existiert bereits

class RegistrationForm(UserCreationForm): 

    class Meta: 
    model = User 
    fields = [ 'username', 'first_name', 'password1', 'password2'] 

    def save(self, commit=True): 
     user = super(RegistrationForm, self).save(commit=False) 
     user.first_name = self.cleaned_data['first_name'] 
     if commit: 
      user.save() 
     return user 

In views.py,

def register(request): 
if request.method == 'POST': 
    form = RegistrationForm(request.POST) 
    if form.is_valid(): 
     form.save() 
     username = request.POST.get('username') 
     password = request.POST.get('password1') 
     user = authenticate(username=username, password=password) 
     login(request, user) 
     return redirect(reverse('accounts:profile')) 
else: 
    form = RegistrationForm() 
    return render(request, 'accounts/reg_form.html', {'form': form}) 

Gerade jetzt, wenn ich den gleichen Benutzernamen bin mit es einen Fehler hervorrufen, die sagt, "Das View-Konto" Accounts.views.register "hat kein HttpResponse-Objekt zurückgegeben. Es hat stattdessen" None "zurückgegeben." Wie kann ich dieses Problem beheben?

Danke :)

+1

Das Formular tut dies bereits für Sie sein. –

+0

@DanielRoseman Sir, wie kann ich diesen Fehler beheben "Die Ansicht accounts.views.register gab kein HttpResponse-Objekt zurück. Stattdessen wurde None zurückgegeben." –

+1

Entarre die letzte Zeile um eine Ebene. –

Antwort

0

Django Form von Standard dies für Sie tut.

Sie brauchen nicht spezifisch dafür. Beacuse, Standard User Das Modell, das von django zur Verfügung gestellt wird, nimmt keinen doppelten Benutzernamen.

kann eine gewisse Vertiefung Problem

def register(request): 
    if request.method == 'POST': 
      form = RegistrationForm(request.POST) 
      if form.is_valid(): 
       form.save() 
       . . . . 
    else: 
     form = RegistrationForm() 
    return render(request, 'accounts/reg_form.html', {'form': form}) 
    #^^^^^Indentation here take return statement outside else 
+0

Sir, wie kann ich diesen Fehler beheben "Die Ansicht accounts.views.register gab kein HttpResponse-Objekt zurück. Stattdessen wurde None zurückgegeben." –

+0

posten Sie Ihre komplette 'views.py'. –

+0

Sir, gerade in Frage gestellt –

Verwandte Themen