2017-02-27 46 views

回答

0

數據庫中沒有結構是棘手的。例如,當應用程序增長時,JSONFields可能被證明是非常難以馴服的。

我會盡量讓它「簡單」 - 更易維護(我想如果你需要做類似的事情,你可能想在未來擴展模型)。如果這是一個新項目,你可以很容易地change the default user model。但是這可能會幫助你解決你的問題。

您可以隨時在兩種模式:

from django.db import models 
from django.contrib.auth.models import AbstractBaseUser 

class Mortal(AbstractBaseUser): 
    is_superuser = False 

    username = models.CharField(max_length=256) 
    first_name = models.CharField(max_length=256) 
    last_name = models.CharField(max_length=256) 

class Admin(AbstractBaseUser): 
    is_superuser = True 

    username = models.CharField(max_length=256) 

然後make your own authentication backend

class MyBackend(object): 
    """ 
    Danger! A backend to authenticate only via username 
    """ 

    def authenticate(self, username=None): 
     try: 
      return Mortal.objects.get(username=username) 
     except Mortal.DoesNotExist: 
      try: 
       return Admin.objects.get(username=username) 
      except Admin.DoesNotExist: 
       return None 
1

你可以有外鍵的用戶配置文件類(比如用戶配置),也就是要創建只有當用戶使用網站的註冊表格註冊時。這樣,在管理站點或通過命令行創建的超級用戶將不需要附加的額外配置文件實例。

相關問題