Менеджер недоступен; «auth.User» заменен на «members.CustomUser».

у меня проблема с моим кодом, когда я хочу, чтобы ошибка регистрации отображалась Manager isn't available; 'auth.User' has been swapped for 'members.CustomUser', я пытаюсь ответить на другие вопросы так же, как Менеджер недоступен; 'auth.User' был заменен на 'members.CustomUser', но все они просят заменить User = User = get_user_model(), но я не использую User в своем коде или я не знаю, где я использовал это .im new в django, python, js и т. д., так что если мой вопрос глупый, простите меня.

для получения дополнительной информации: 1) я использовал Django Signup Tutorial для создания метода регистрации . сначала это работало хорошо, но после того, как я расширил свой проект домашней работы, я получаю сообщение об ошибке. 2) в других приложениях («продукты» и «поиск») нет, где я не импортирую пользователя, и даже я не использую CustomUser, потому что мне не нужно работать с пользователем в этом apps.just memebers работают с User и CustomUser.

модель.ру:

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"

настройка.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)

форма.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

person mehdi    schedule 27.02.2019    source источник
comment
members название вашего приложения?   -  person Sanip    schedule 27.02.2019
comment
да. from django.apps import AppConfig class MembersConfig(AppConfig): name = 'members'   -  person mehdi    schedule 27.02.2019
comment
Вы установили default_app_config в members/__init__.py?   -  person Sanip    schedule 27.02.2019
comment
нет, я никогда ничего не редактировал в init.py в своей жизни. Я проверял, что он пуст.   -  person mehdi    schedule 27.02.2019


Ответы (2)


Изменить views.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'

to

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'
person Rexcirus    schedule 07.10.2019

В ваших формах.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'
person Sanip    schedule 27.02.2019
comment
получить ошибку: имя «UserChangeForm» не определено. то я from django.contrib.auth.forms import UserCreationForm, UserChangeForm и старая проблема осталась. - person mehdi; 27.02.2019
comment
Можете ли вы добавить эти формы в файл admin.py и удалить импорт этих форм в файле admin.py? - person Sanip; 27.02.2019
comment
я изменил form.py иmembers/init.py, как вы сказали мне, но ошибка все еще остается. о «Можете ли вы добавить эти формы в файл admin.py и удалить импорт этих форм в файле admin.py» я не понимаю ур значит. можешь, пожалуйста, оставить мне код? - person mehdi; 27.02.2019
comment
вот моя домашняя работа на github. я думаю, что это простой способ найти проблему. GitHub Project. спасибо - person mehdi; 27.02.2019
comment
Я посмотрю на это. - person Sanip; 27.02.2019
comment
Любое разрешение на это? У меня такая же проблема. Я также следовал точному учебнику, который вы связали. - person Vincent; 31.03.2019