Python 管理员注册员工用户可以';t登录django管理员,表单注册人员用户可以';T
当我通过django管理面板创建一个用户,并将其标记为staff时,它可以按其应该的方式登录django管理页面,但当我创建用户viePython 管理员注册员工用户可以';t登录django管理员,表单注册人员用户可以';T,python,django,django-forms,django-admin,django-authentication,Python,Django,Django Forms,Django Admin,Django Authentication,当我通过django管理面板创建一个用户,并将其标记为staff时,它可以按其应该的方式登录django管理页面,但当我创建用户vieUserForm并将其标记为staff时,它无法登录。它表示员工的用户名密码无效等等 我怀疑错误是因为我正在使用 TEMPLATE_CONTEXT_PROCESSORS = ('django.contrib.auth.context_processors.auth','django.core.context_processors.request') 目前我有以下
UserForm
并将其标记为staff时,它无法登录。它表示员工的用户名密码无效等等
我怀疑错误是因为我正在使用
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')
现在告诉我,我怎样才能绕过这个问题?phew,我必须添加如下内容:
AUTHENTICATION_BACKENDS = (
'django.contrib.auth.backends.ModelBackend',
)
三个简单步骤:
user=user.objects.create\u user(“用户名”)
user.password=“您的密码”
user.set\u密码(user.password)
user.is\u staff=True
user.is\u superuser=True'
user.save()
python manage.py createsuperuser
并在保存用户之前创建超级用户
user.is_staff=True
?您的上下文处理器与此无关。问题很可能是user.set\u password(user.password)
被调用两次(一次在UserForm.save()
中,第二次在视图中),或者UserForm.save()
未正确设置is\u staff
标志。通过查看用户对象,可以轻松检查第二种情况。对于第一个例子,你没有发布你的UserForm
代码,所以只有你才能知道…is_staff=True是的所有情况。我也从管理面板中仔细检查了。尝试删除行user。设置密码(user.password)
,这有帮助吗?还要确保user.is_staff=True
。已删除设置密码,但它不起作用:(