-
您應該使用
django.contrib.auth.get_user_model()
來引用用戶模型,而不是直接引用User
User
當您為用戶模型定義外鍵或多對多關係時,您應該使用
AUTH_USER_MODEL
from django.conf import settings from django.db import models class Article(models.Model): author = models.ForeignKey( settings.AUTH_USER_MODEL, on_delete=models.CASCADE, )
連接到用戶模型發送的信號時,您應該使用
AUTH_USER_MODEL
from django.conf import settings from django.db.models.signals import post_save def post_save_receiver(sender, instance, created, **kwargs): pass post_save.connect(post_save_receiver, sender=settings.AUTH_USER_MODEL)
一般來說,在導入時執行的代碼中使用
AUTH_USER_MODEL
get_user_model()
,所以你可以使用models.ForeignKey(get_user_model(), ...)
。如果您的應用使用多個用戶模型進行了測試,例如使用
@override_settings(AUTH_USER_MODEL=...)
,並且您將get_user_model()
的結果緩存在 module-level 變量中,您可能需要偵聽setting_changed
from django.apps import apps from django.contrib.auth import get_user_model from django.core.signals import setting_changed from django.dispatch import receiver @receiver(setting_changed) def user_model_swapped(**kwargs): if kwargs['setting'] == 'AUTH_USER_MODEL': apps.clear_cache() from myapp import some_module some_module.UserModel = get_user_model()
本文介紹 django.contrib.auth.get_user_model
的用法。
聲明
get_user_model()
相關用法
- Python Django get_language_info用法及代碼示例
- Python Django get用法及代碼示例
- Python Django get_messages用法及代碼示例
- Python PIL getbands() and getextrema()用法及代碼示例
- Python PIL getpixel()用法及代碼示例
- Python getattr()用法及代碼示例
- Python OpenCV getTrackbarPos()用法及代碼示例
- Python OpenCV getgaussiankernel()用法及代碼示例
- Python OpenCV getRotationMatrix2D()用法及代碼示例
- Python PIL getbands()用法及代碼示例
- Python gettext.GNUTranslations.ngettext用法及代碼示例
- Python PIL getpalette()用法及代碼示例
- Python PIL getcolors()用法及代碼示例
- Python gettext.NullTranslations.install用法及代碼示例
- Python genericalias.__parameters__用法及代碼示例
- Python Tableau groups.update用法及代碼示例
- Python gzip.compress(s)用法及代碼示例
- Python globals()用法及代碼示例
- Python Tableau groups.delete用法及代碼示例
- Python Tableau groups.create用法及代碼示例
- Python numpy string greater_equal()用法及代碼示例
- Python gcd()用法及代碼示例
- Python Tableau groups.remove_user用法及代碼示例
- Python Tableau groups.populate_users用法及代碼示例
- Python Tableau groups.get用法及代碼示例
注:本文由純淨天空篩選整理自djangoproject.com大神的英文原創作品 django.contrib.auth.get_user_model。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。