簡體   English   中英

如何在 Django 中為管理員用戶和普通用戶創建單獨的模型(表)

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM