Django 如何继承(扩展)User模型类



在实际项目开发当中我们一般有两种需求,1. 继承User类,添加更多用户属性以适合项目需求。 2. 引用User类。

1. 继承User类,添加更多用户属性以适合项目需求

from django.contrib.auth.models import User

class MyUser(User):
  custom_field  = models.CharField(max_length=100)
  ...

注意:这里必须在settings.py配置文件中添加:

AUTH_USER_MODEL = 'myapp.MyUser'

2. 引用User类

建立一对一关系

from django.contrib.auth.models import User

class Employee(models.Model):
    user = models.OneToOneField(User, on_delete=models.CASCADE)
    department = models.CharField(max_length=100)