【发布时间】:2021-03-05 10:16:26
【问题描述】:
我只想要普通用户和管理员用户的单独表格。
【问题讨论】:
-
为什么这是必要的?这将使身份验证系统等更加复杂。
-
只是为了忽略一些不必要的字段。这是我的项目的要求。有什么解决办法吗?
标签: python django django-models django-rest-framework django-admin
我只想要普通用户和管理员用户的单独表格。
【问题讨论】:
标签: python django django-models django-rest-framework django-admin
我同意 Willem 的评论,但您可以尝试几种不同的模式:
class BaseUser(AbstractBaseUser...):
''' base user class '''
first_name = models.CharField(...)
last_name = models.CharField(...)
@property
def is_normal_user(self):
try:
return self.normal_user and True
except:
return False
@property
def is_admin_user(self):
try:
return self.admin_user and True
except:
return False
class NormalUser(models.Model, ...):
''' normal user, extends BaseUser class '''
base_user = models.OneToOneField('BaseUser', related_name='normal_user', ...)
email = models.CharField(...)
class AdminUser(models.Model, ...):
''' admin user, extends BaseUser class '''
base_user = models.OneToOneField('BaseUser', related_name='admin_user', ...)
email = models.CharField(...)
然后你可以在你的视图中像这样:
user = BaseUser.objects.get(id=<the user id>)
if user.is_normal_user:
# do something for normal users:
if user.is_admin_user:
# do something for admin users:
【讨论】: