Django 经理是';t可用';授权用户';已替换为';成员。CustomUser';
当我想要注册时,我的代码有问题。错误出现Django 经理是';t可用';授权用户';已替换为';成员。CustomUser';,django,django-custom-user,Django,Django Custom User,当我想要注册时,我的代码有问题。错误出现管理器不可用;'“auth.User”已被“members.CustomUser”替换为“members.CustomUser”,我尝试解决其他类似的问题,但所有问题都要求替换User=User=get\u User\u model(),但我的代码中没有使用任何User,或者我不知道我在哪里使用了它。我是django、python、js等的新手,所以如果我的问题很傻,请原谅我 更多信息:1)我使用创建注册方法。首先,这很好,但在我扩展我的家庭作业项目后,我
管理器不可用;'“auth.User”已被“members.CustomUser”替换为“members.CustomUser”
,我尝试解决其他类似的问题,但所有问题都要求替换User=User=get\u User\u model()
,但我的代码中没有使用任何User
,或者我不知道我在哪里使用了它。我是django、python、js等的新手,所以如果我的问题很傻,请原谅我
更多信息:1)我使用创建注册方法。首先,这很好,但在我扩展我的家庭作业项目后,我得到了错误。2)在其他应用程序(“产品”和“搜索”)中没有,我不导入用户,甚至我也不使用CustomUser。bez不需要在这个应用程序中与用户一起工作。只需memebers
与用户和CustomUser一起工作即可
model.py:
from django.contrib.auth.models import AbstractUser
class CustomUser(AbstractUser):
def __str__(self):
return self.email
class Meta:
verbose_name = "member"
verbose_name_plural = "members"
setting.py:
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'card.apps.CardConfig',
'members.apps.MembersConfig',
'search.apps.SearchConfig',
'products.apps.ProductsConfig',
'rest_framework',
]
AUTH_USER_MODEL = 'members.CustomUser'
admin.py:
from django.contrib import admin
from django.contrib.auth import get_user_model
from django.contrib.auth.admin import UserAdmin
from .forms import CustomUserCreationForm, CustomUserChangeForm
from .models import CustomUser
class CustomUserAdmin(UserAdmin):
add_form = CustomUserCreationForm
form = CustomUserChangeForm
model = CustomUser
list_display = ['email', 'username']
admin.site.register(CustomUser, CustomUserAdmin)
form.py:
# users/forms.py
from django.contrib.auth.forms import UserCreationForm, UserChangeForm
from .models import CustomUser
class CustomUserCreationForm(UserCreationForm):
class Meta(UserCreationForm):
model = CustomUser
fields = ('username', 'email')
class CustomUserChangeForm(UserChangeForm):
class Meta:
model = CustomUser
fields = ('username', 'email')
错误:
27/Feb/2019 12:36:01] "GET /signup/ HTTP/1.1" 200 5293
Internal Server Error: /signup/
Traceback (most recent call last):
File "C:\shopping\venv\lib\site-packages\django\core\handlers\exception.py", line 34, in inner
response = get_response(request)
File "C:\shopping\venv\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
response = self.process_exception_by_middleware(e, request)
File "C:\shopping\venv\lib\site-packages\django\core\handlers\base.py", line 124, in _get_response
response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "C:\shopping\venv\lib\site-packages\django\views\generic\base.py", line 68, in view
return self.dispatch(request, *args, **kwargs)
File "C:\shopping\venv\lib\site-packages\django\views\generic\base.py", line 88, in dispatch
return handler(request, *args, **kwargs)
File "C:\shopping\venv\lib\site-packages\django\views\generic\edit.py", line 172, in post
return super().post(request, *args, **kwargs)
File "C:\shopping\venv\lib\site-packages\django\views\generic\edit.py", line 141, in post
if form.is_valid():
File "C:\shopping\venv\lib\site-packages\django\forms\forms.py", line 185, in is_valid
return self.is_bound and not self.errors
File "C:\shopping\venv\lib\site-packages\django\forms\forms.py", line 180, in errors
self.full_clean()
File "C:\shopping\venv\lib\site-packages\django\forms\forms.py", line 383, in full_clean
self._post_clean()
File "C:\shopping\venv\lib\site-packages\django\contrib\auth\forms.py", line 107, in _post_clean
super()._post_clean()
File "C:\shopping\venv\lib\site-packages\django\forms\models.py", line 403, in _post_clean
self.instance.full_clean(exclude=exclude, validate_unique=False)
File "C:\shopping\venv\lib\site-packages\django\db\models\base.py", line 1137, in full_clean
self.clean()
File "C:\shopping\venv\lib\site-packages\django\contrib\auth\models.py", line 338, in clean
self.email = self.__class__.objects.normalize_email(self.email)
File "C:\shopping\venv\lib\site-packages\django\db\models\manager.py", line 188, in __get__
cls._meta.swapped,
AttributeError: Manager isn't available; 'auth.User' has been swapped for 'members.CustomUser'
[27/Feb/2019 12:36:04] "POST /signup/ HTTP/1.1" 500 113770
在您的forms.py中进行以下更改:
from django.contrib.auth import get_user_model
class CustomUserChangeForm(UserChangeForm):
class Meta:
model = get_user_model()
fields = ('username', 'email')
class CustomUserCreationForm(UserCreationForm):
class Meta:
model = get_user_model()
fields = ('username', 'email')
还要将此脚本添加到您的members/init.py文件中:
default_app_config = 'members.apps.MembersConfig'
修改视图.py
from django.contrib.auth.forms import UserCreationForm
from django.urls import reverse_lazy
from django.views import generic
class SignUp(generic.CreateView):
form_class = UserCreationForm
success_url = reverse_lazy('login')
template_name = 'signup.html'
到
members
是您的应用程序名称吗?是从django.apps导入AppConfig类MembersConfig(AppConfig):name='members'
是否在members/\uuuuu init\uuuuuu.py
中设置了default\u app\u config
?不,我一生中从未在init.py中编辑任何内容。我检查它是否为空。获取错误:name'UserChangeForm'未定义。然后我从django.contrib.auth.forms导入UserCreationForm,UserChangeForm和旧问题仍然存在。您能在admin.py文件中添加这些表单并删除admin.py文件中这些表单的导入吗?正如您告诉我的,我更改了form.py和members/init.py,但仍然存在错误。关于“您能在admin.py文件中添加这些表单并删除admin.py文件中这些表单的导入吗”我不知道明白你的意思。你能给我留下代码吗?这是我在github上的作业。我认为这是发现问题的简单方法。。tnxI会看一看。
from .forms import CustomUserCreationForm
from django.urls import reverse_lazy
from django.views import generic
class SignUp(generic.CreateView):
form_class = CustomUserCreationForm
success_url = reverse_lazy('login')
template_name = 'signup.html'