我正在使用django。除了django.contrib.auth之外,我在django.contrib中创建了第二个身份验证后端django.contrib.companyauth和相应内容类型的类似文件夹。一切正常,但是当我运行syncdb时,超级用户是在adminauth>用户(即在第二个身份验证后端的用户表中)的管理页面中创建的,而我需要在auth> admin页面的用户中创建这个超级用户。怎么做到这一点? (我无法找到任何临时方式)。
答案 0 :(得分:0)
贵公司用户必须"延长"来自Auth.User,如果你想使用任何Django授权工具......
尝试将公司用户模型更改为此类
class CompanyUser(models.Model):
user = models.OneToOneField(User)
## Whatever fields you want to use
observations= models.CharField(max_length=2048)
这样,您的request.user是Auth.User,如果您想获得公司用户,您只需:
CompanyUser.objects.get(user=request.user)
老实说,我不会实施另一个授权系统......
现在回答你的问题,这里是你如何创建一个用户,在这种情况下,是一个超级用户:
## Creating Auth.User
base_user = User.objects.create(
username = 'username',
password = make_password('password') ,
email = 'email',
first_name= 'first_name',
last_name = 'last_name',
is_superuser = 1
)
## Extending User to CompanyUser
extended_user = CompanyUser.objects.create(
user = base_user,
observations='observations'
)
我希望它有所帮助; - )