Когда я создаю пользователя через панель администратора django и отмечаю его персонал, он может войти в административную страницу django, как и следовало бы, но когда я создаю пользователя vie UserForm
и пометьте как персональный он не может войти в систему. В нем указывается неверный пароль пользователя для персонала и т. Д.admin зарегистрированный пользователь пользователь не может войти в систему django admin, form зарегистрированный штат пользователя не может
Я подозреваю, что ошибка происходит потому, что я использую,
TEMPLATE_CONTEXT_PROCESSORS = ('django.contrib.auth.context_processors.auth','django.core.context_processors.request')
В настоящее время у меня есть следующий код:
user_form = UserForm(data=request.POST)
profile_form = UserProfileForm(data=request.POST)
if user_form.is_valid() and profile_form.is_valid():
user = user_form.save()
user.set_password(user.password)
user.save()
В форме:
class UserForm(forms.ModelForm):
password = forms.CharField(widget=forms.PasswordInput())
class Meta:
model = User
fields = ('username', 'email', 'password')
Теперь скажите мне, как могу ли я передать эту проблему?
'user.is_staff = true' перед сохранением пользователя? – baxeico
Ваши процессоры контекста не имеют к этому никакого отношения. Проблема, скорее всего, либо 'user.set_password (user.password)' вызывается дважды (один раз в 'UserForm.save()' и второй раз в вашем представлении), либо 'UserForm.save()' неправильно задает настройки флаг 'is_staff'. Вы можете легко проверить второй случай, посмотрев на свой пользовательский объект. Для первого вы не разместили свой код «UserForm», так что только вы можете сказать ... –
is_staff = True yep all cases. Я также дважды проверял с панели администратора. – sadaf2605