[英]How to create separate model(table) for Admin User and Normal User in Django
我只想要普通用戶和管理員用戶的單獨表。
我同意 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:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.