說實話,當你使用默認的Django用戶模型時,最好創建一個自定義用戶模型,以便更容易修改。下面是一個關於如何使用AbtractBaseUser修改User類的簡單示例。如果你想添加一個外鍵,只需使用ForeignKey而不是下面的數據類型。
from __future__ import unicode_literals
from django.utils import timezone
from django.contrib.auth.models import (AbstractBaseUser,PermissionsMixin)
from django.db import models
class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(unique=True)
username = models.CharField(max_length=7, unique=True)
formattedusername = models.CharField(max_length=11, unique=True, primary_key = True)
first_name = models.CharField(max_length=40)
last_name = models.CharField(max_length=140)
date_joined = models.DateTimeField(default=timezone.now)
is_active = models.BooleanField(default=True)
is_staff = models.BooleanField(default=False)
facility = models.CharField(max_length=140)
jobdescription = models.CharField(max_length=140)
positiondescription = models.CharField(max_length=140)
coid = models.CharField(max_length=5)
streetaddress = models.CharField(max_length=140)
USERNAME_FIELD = 'username'
class Meta:
app_label = 'accounts'
db_table = "user"
# REQUIRED_FIELDS = "username"
def __str__(self):
return "@{}".format(self.username)
這是相當廣泛覆蓋的[文檔】在(https://docs.djangoproject.com/en/1.11/topics/auth/customizing/#extending-the-existing-user-model)。您可以創建配置文件模型或替換用戶模型。 – solarissmoke