一、使用django自带的user做外键,可以直接在model中使用。只需导入settings模块
使用方法:
在app应用(此处是Product应用)中的models.py文件,导入settings模块
# Product / models.py
from django.db import models
from django.contrib.auth import settings
class Product(models.Model):
productName = models.CharField('产品名称', max_length=20)
productDescription = models.CharField('产品描述', max_length=100)
producer = models.ForeignKey(settings.AUTH_USER_MODEL, verbose_name='负责人', on_delete=models.SET_NULL,blank=True, null=True)
createTime = models.DateTimeField('创建时间', auto_now=True)
class Meta:
verbose_name = '产品管理'
verbose_name_plural = '产品管理'
def __str__(self):
return self.productName
二、自定义User Model
方法一、扩展AbstractUser类:只增加字段
app/models.py
from django.contrib.auth.models import AbstractUser
from django.db import models
class NewUser(AbstractUser):
new_field = models.CharField(max_length=100)
同时,需要在global_settings文件中设置:
AUTH_USER_MODEL = "app.NewUser"
方法二、扩展AbstractBaseUser类
AbstractBaseUser中只包含3个field: password, last_login和is_active. 扩展方式同上
# django.contrib.auth.base_user
class AbstractBaseUser(models.Model):
password = models.CharField(_('password')