【发布时间】:2021-06-20 19:51:38
【问题描述】:
我看过几篇帖子和read the documentation,关于如何在settings.py 中设置AUTH_USER_MODEL 是最佳实践,但没有看到任何关于如何做到这一点的实际示例。我尝试了几种配置,但一直收到此错误:
django.core.exceptions.ImproperlyConfigured: AUTH_USER_MODEL 指的是尚未安装的模型'auth.User'
它甚至没有告诉我错误发生在哪里。以下是我尝试过的方法:
方法 1:
from django.contrib.auth import get_user_model
User = get_user_model()
然后我会像这样引用我的用户:
class Profile(models.Model):
user = models.OneToOneField(User, on_delete=models.CASCADE)
方法 2:
from django.contrib.auth.models import User
两者都不起作用,如果我只想使用标准用户模型,我不确定如何在 settings.py 中设置 AUTH_USER_MODEL。我根本没有自定义 User 对象。我假设类似AUTH_USER_MODEL = 'django.contrib.auth.models.User',但我不确定。
现在我得到了这个:
AttributeError: 'str' 对象没有属性 '_meta'
users/forms.py
from django import forms
from django.conf import settings
from django.contrib.auth.forms import UserCreationForm
from .models import Profile
class UserRegisterForm(UserCreationForm):
email = forms.EmailField()
class Meta:
model = settings.AUTH_USER_MODEL
fields = ['username', 'email', 'password1', 'password2']
class UserUpdateForm(forms.ModelForm):
email = forms.EmailField()
class Meta:
model = settings.AUTH_USER_MODEL
fields = ['username', 'email']
【问题讨论】:
-
评论不用于扩展讨论;这个对话是moved to chat。
标签: python django django-settings django-auth-models