@BogBel

Как сделать поле user.is_active = True по умолчанию(django-registration-redux)?

Продолжая свою тематику про регистрацию на джанго.
Я переопределил свою форму выглядит это теперь так
class RegistrationForm(RegistrationFormUniqueEmail):
    first_name = forms.CharField(label=u"First Name", required=True)
    last_name = forms.CharField(label=u"Last Name", required=True)
    username = forms.CharField(label=None)
    email = forms.CharField(label=None)
    password1 = forms.CharField(label="Password", widget=forms.PasswordInput)
    password2 = forms.CharField(label="Password confirmation", widget=forms.PasswordInput)

    def save(self, profile_callback=None):
        new_user = User.objects.create_user(username=self.cleaned_data['username'],
                                            password=self.cleaned_data['password1'],
                                            email=self.cleaned_data['email'],
                                            first_name=self.cleaned_data['first_name'],
                                            last_name=self.cleaned_data['last_name'],
                                            )

        new_user.is_active = True
        new_user.save()
        g = Group.objects.get(name='users')
        g.user_set.add(new_user)
        
        return new_user

В этой форме я так же добавляю пользователя в ранее созданную Group users.
И так.
Написал шаблон, урл.
Захожу на /register/ ввожу свои данные, отправляю на сервер. Регистрация завершена.
Но смотрю базу , и поле is_active у моего юзера = 0
Потом что я заметил.
Если в save() написать что то, что бросает exception (например print 1/0) то получаю ошибку, но пользователь добавляется в базу и is_active = 1
Это так, занимательный факт.
А на самом деле, хочу получить советы, как сделать пользователя сразу active , без подтверждения по имейлу?
Ввожу запрашиваемые данные
  • Вопрос задан
  • 738 просмотров
Пригласить эксперта
Ответы на вопрос 1
@deliro
new_user = User.objects.create_user(username=self.cleaned_data['username'],
                                            password=self.cleaned_data['password1'],
                                            email=self.cleaned_data['email'],
                                            first_name=self.cleaned_data['first_name'],
                                            last_name=self.cleaned_data['last_name'],
                                            )

        new_user.is_active = True
        new_user.save()

Заменить на
new_user = User.objects.create_user(username=self.cleaned_data['username'],
                                            password=self.cleaned_data['password1'],
                                            email=self.cleaned_data['email'],
                                            first_name=self.cleaned_data['first_name'],
                                            last_name=self.cleaned_data['last_name'],
                                            is_active=True,
                                            )
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы