Django forms.ModelForm не вызывает метод init - PullRequest
0 голосов
/ 22 сентября 2018

Я не совсем понимаю, когда django вызывает метод init ... Я попытался создать пользовательскую модель, которая прекрасно работает в представлении администратора.Теперь я хотел добавить форму для регистрации пользователя.Форма теперь выглядит следующим образом:

class RegisterForm(forms.ModelForm):
def __int__(self, *args, **kwargs):
    super(RegisterForm, self).__int__(*args, **kwargs)  # EVT ERROR HIER
    self.fields['password1'] = forms.CharField(widget=forms.PasswordInput)
    self.fields['password2'] = forms.CharField(widget=forms.PasswordInput)
    print("STARTING FORM")

#password1 = forms.CharField(widget=forms.PasswordInput)
#password2 = forms.CharField(widget=forms.PasswordInput,)

class Meta:
    model = User
    fields = ('email', )

def clean_email(self):
    email = self.cleaned_data.get('email')
    qs = User.objects.filter(email=email)
    if qs.exists():
        #raise forms.ValidationError(_("Mail is allready taken"))
        pass
    return email

def clean_password2(self):
    password1 = self.cleaned_data.get("password1")
    password2 = self.cleaned_data.get("password2")
    if password1 and password2 and password1 != password2:
        #raise forms.ValidationError(_("Passwords don't match"))
        pass
    return password2

Как вы можете видеть на форме, я немного попробовал.Но ничего, что находится внутри init метода, не вызывается.Я действительно не понимаю, почему.Я хочу использовать crispy-формы, и я помещаю свой вспомогательный метод в метод init.Сначала я подумал, что это ошибка / ошибка в хрустящих формах.Но даже после того, как не был вызван метод print, у меня возникает ощущение, что мой метод init не вызывается.

Внутри я получил следующее представление:

class SignUpView(bracesviews.AnonymousRequiredMixin,
             bracesviews.FormValidMessageMixin,
             generic.CreateView):
form_class = RegisterForm
template_name = 'accounts/signup.html'
success_url = "/admin/"
form_valid_message = "YES"

def form_valid(self, form):
    r = super().form_valid(form)
    email = form.cleaned_data["email"]
    password = form.cleaned_data["password1"]
    user = auth.authenticate(email=email, password=password)
    auth.login(self.request, user)
    return r

Здесь я уже попробовал функцию, основанную напосмотреть, а также просто не помещая никаких Mixins рядом с FormView.Пока ничего не получалось, и я действительно не понимаю, почему.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...