【发布时间】:2018-11-17 23:19:14
【问题描述】:
我一直在我的 Django 2.1 项目中处理扩展用户模型。我很想知道将我的 CustomUser 模型导入另一个模型(用作 ForeinKey)的方式是否正确。
我过去曾遇到过这样的说法,即从管理应用程序中简单地导入用户模型是不正确的,而是从 django.conf 中导入它。
从基本用户模型导入的示例:
from django.conf import settings
User = settings.AUTH_USER_MODEL
...
class <ModelName>(models.mode):
user = ForeignKey(User, on_delete=models.CASCADE, default=1)
现在我正在使用 CustomUser 模型(扩展 AbstractUser),
用户/模型.py:
class CustomUser(AbstractUser):
objects = CustomUserManager()
def __str__(self):
return self.username
通过设置(如上所示)导入此模型是更好的做法,还是我在下面(在我的 Post 应用程序中)以正确的方式执行它:
posts/models.py:
from users.models import CustomUser
class Post(models.Model):
user = models.ForeignKey(CustomUser, on_delete=models.CASCADE, default=1)
我假设这是错误的方法,但我不知道为什么,有人可以告诉我为什么上述不是最佳实践吗?注意:它确实完成了工作。
谢谢!
【问题讨论】:
标签: django django-models django-admin