-
您应该使用
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。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。