0

Konten/forms.pyTypeError unter/accounts/register/RegistrationForm() nimmt genau 1 Argument (0 gegeben)?

from django import forms 
from django.contrib.auth.models import User 
from django.contrib.auth.forms import UserCreationForm 

def RegistrationForm(UserCreationForm): 
    email = forms.EmailField(required=True) 

    class Meta: 
     model = User 
     fields = ('username', 'first_name', 'last_name', 'email', 'password1', 'password2') 

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

     if commit: 
      user.save() 

     return user 

Konten/views.py

from django.shortcuts import render, redirect 
from accounts.forms import RegistrationForm 

def register(request): 
    if request.method == 'POST': 
     form = RegistrationForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      return redirect('/accounts') 
    else : 
     form = RegistrationForm() 
     args ={'form':form} 
     return render(request, 'accounts/registration_form.html', args) 

ich diesen Fehler

TypeError at /accounts/register/ RegistrationForm() takes exactly 1 argument (0 given)

+2

beachten Sie, dass es sein sollte 'Klasse RegistrationForm' – e4c5

+0

Verwendung Stichwort‚Klasse‘statt‚def‘Registration. Wenn Sie sich geändert haben, aktualisieren Sie bitte die Frage – Thameem

Antwort

1

Sie benötigen Klasse Schlüsselwort für Ihre Formulardeklaration zu verwenden,

class RegistrationForm(UserCreationForm): 

Auch Ihre Einrückung ist deaktiviert, Sie müssen einige Änderungen in Ihrer Sicht vornehmen,

machen Sie die Argumente und Return-Anweisungen aus dem else Teil der if-Anweisung.

def register(request): 
    if request.method == 'POST': 
     form = RegistrationForm(request.POST) 
     if form.is_valid(): 
      form.save() 
      return redirect('/accounts') 
    else : 
     form = RegistrationForm() 
    args ={'form':form} 
    return render(request, 'accounts/registration_form.html', args) 
+0

nein es funktioniert nicht die gleichen Probleme –

+0

können Sie die volle Stack-Trace buchen? – zaidfazil

+0

Ich kann dort nicht in meinem Code hinzufügen, es scheint, dass Ihr Code scheint meist codiert –

Verwandte Themen