django - 扩展 AbstractUser 时每个用户的联系人列表
问题描述
我想创建一个带有一些额外字段的自定义用户模型,其中包括其他用户的联系人列表。我想扩展AbstractUser
而不是创建一个具有一对一链接的新模型User
。
from django.contrib.auth import get_user_model
from django.contrib.auth.models import AbstractUser
from django.db import models
class CustomUser(AbstractUser):
a_custom_field = models.IntegerField(default=0)
# per-user contact list
contacts = models.ManyToManyField(get_user_model())
此代码不起作用。在 makemigrations 期间抛出此错误。
django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL refers to model 'users.CustomUser' that has not been installed
这个错误完全有道理,但实现这一目标的正确方法是什么?
解决方案
我只是通过深入研究 django 文档找到了解决方案。get_user_model()
问题是在创建用户模型之前我无法使用。解决方案是使用类名作为字符串。所以,这段代码很好用:
from django.contrib.auth import get_user_model
from django.contrib.auth.models import AbstractUser
from django.db import models
class CustomUser(AbstractUser):
a_custom_field = models.IntegerField(default=0)
# per-user contact list
contacts = models.ManyToManyField('CustomUser')
推荐阅读
- android - 如何在 Flutter 上获取其他应用的通知数据?
- amazon-ecs - AWS Ecs 任务运行错误 无法运行任务 在您的集群中找不到容器实例
- cmake - 如何使用 g++ 和 CMake 启用整个程序优化
- python - Login trouble with Selenium
- python - Why are my radio buttons in Tkinter not returning values?
- selenium - 当前目录下不存在chromedriver.exe文件
- java - 即使遵循 firebase 代码示例,我也没有在我的 firebase 数据库中获得图像链接
- wpf - 启动时简单的 WPF 应用程序启动画面“跳跃”
- javascript - 加载不同页面时用户退出firebase服务器
- mongodb - 多个参数设置为 true 的 updateOne 在 mongodb 3.6.1 中不起作用