Я не совсем понимаю, когда 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.Пока ничего не получалось, и я действительно не понимаю, почему.