一、最常規,不定制custom的方式
from django.contrib.auth.models import User class Post(models.Model): author = models.ForeignKey(User, on_delete=models.CASCADE) title = models.CharField(max_length=50) body = models.TextField()
二、custom user
# settings.py AUTH_USER_MODEL = `users.CustomUser`
然后在model這樣寫
from django.conf import settings from django.db import models class Post(models.Model): author = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE ) title = models.CharField(max_length=50) body = models.TextField()
三、不管是不是定制,通用的寫法:get_user_model
# settings.py AUTH_USER_MODEL = `users.CustomUser`
model.py這樣寫
from django.contrib.auth import get_user_model from django.db import models class Post(models.Model): author = models.ForeignKey( get_user_model(), on_delete=models.CASCADE ) title = models.CharField(max_length=50) body = models.TextField()
get_user_model()會返回當前使用的用戶,不論是定制還是系統默認用戶。
AUTH_USER_MODEL
只針對定制用戶。