超级用户与普通用户的不同模型字段要求?姜戈
Different model field requirements for superuser vs normal user? django
示例(非真实示例):
我希望超级用户必须在注册他们的用户名和电子邮件时保存。
和普通用户保存用户名、电子邮件和号码(unique=True)。
我想使用 django 拥有的用户模型,但我不知道数字何时必须是唯一的?或者更确切地说,我最初希望它成为主键,但仅适用于普通用户。我是否必须手动创建两个不同的用户 类 以及权限、身份验证等?还是 django 中 admin/user 有单独的用户模型?
我尝试过(作为一个完全的业余爱好者,oop 和 django 的新手)...在放弃将它用作主键之后,bc AbstractUser 是 fly。
尝试使用 onetoonefield,但无法使用 UserCreationForm 制作组合表单,因为出现“太多字段错误”。让用户 table 的重要部分处于不同的 table 中也很奇怪(或者是吗?)。
类似(不是 100% 准确):
#in models.py
class AdminUser(AbstractUser):
username
email
class NormalUser():
ontoonefield(AdminUser)
number(unique=True)
#in forms.py
class NormalUserForm(UserCreationForm):
class meta:
fields
class onetoonefieldForm(NormalUserForm):
class meta:
add_field += (number)
尝试使用 required_fields,但同样……号码是唯一的
尝试创建两个 abstractUsers...权限错误
考虑过让它成为非唯一的,然后检查 db insert 它是唯一的,但这似乎对数据库有风险,当它是唯一的至关重要时。
感谢您的收听:)
祝你有美好的一天
Do I have to manually make two different user classes along with the permissions, authentication etc.? or is there separate user models for admin/user in django?
Django 使用内置的 User model 并使用属性 is_staff
和 is_superuser
.
区分三类用户
- 普通用户:
is_staff=False
、is_superuser=False
- 职员用户(可以访问管理界面):
is_staff=True
- 超级用户(无所不能):
is_superuser=True
如果默认用户模型不适合您,您可以extend it or replace it。
让用户决定他们的主键并不是预期的默认值。主键通常由数据库决定,数据库也处理唯一性。如果您想为每个用户分配一个唯一的编号,例如客户编号,我想最简单的方法是 extend the user model 使用用户配置文件。
示例(非真实示例): 我希望超级用户必须在注册他们的用户名和电子邮件时保存。 和普通用户保存用户名、电子邮件和号码(unique=True)。
我想使用 django 拥有的用户模型,但我不知道数字何时必须是唯一的?或者更确切地说,我最初希望它成为主键,但仅适用于普通用户。我是否必须手动创建两个不同的用户 类 以及权限、身份验证等?还是 django 中 admin/user 有单独的用户模型?
我尝试过(作为一个完全的业余爱好者,oop 和 django 的新手)...在放弃将它用作主键之后,bc AbstractUser 是 fly。
尝试使用 onetoonefield,但无法使用 UserCreationForm 制作组合表单,因为出现“太多字段错误”。让用户 table 的重要部分处于不同的 table 中也很奇怪(或者是吗?)。 类似(不是 100% 准确):
#in models.py
class AdminUser(AbstractUser):
username
email
class NormalUser():
ontoonefield(AdminUser)
number(unique=True)
#in forms.py
class NormalUserForm(UserCreationForm):
class meta:
fields
class onetoonefieldForm(NormalUserForm):
class meta:
add_field += (number)
尝试使用 required_fields,但同样……号码是唯一的
尝试创建两个 abstractUsers...权限错误
考虑过让它成为非唯一的,然后检查 db insert 它是唯一的,但这似乎对数据库有风险,当它是唯一的至关重要时。
感谢您的收听:) 祝你有美好的一天
Do I have to manually make two different user classes along with the permissions, authentication etc.? or is there separate user models for admin/user in django?
Django 使用内置的 User model 并使用属性 is_staff
和 is_superuser
.
- 普通用户:
is_staff=False
、is_superuser=False
- 职员用户(可以访问管理界面):
is_staff=True
- 超级用户(无所不能):
is_superuser=True
如果默认用户模型不适合您,您可以extend it or replace it。
让用户决定他们的主键并不是预期的默认值。主键通常由数据库决定,数据库也处理唯一性。如果您想为每个用户分配一个唯一的编号,例如客户编号,我想最简单的方法是 extend the user model 使用用户配置文件。