Django: Менеджер недоступен; 'auth.User' был заменен на 'userauths.CustomUser' [duplicate]
Я работаю над проектом Django и столкнулся с проблемой при попытке зарегистрировать нового поставщика. Сообщение об ошибке, которое я получаю, выглядит так:
AttributeError at /vendorpannel/vendor_signup/
Manager isn't available; 'auth.User' has been swapped for 'userauths.CustomUser'
Что я пробовал:
1.Убедился, что AUTH_USER_MODEL
установлен правильно в settings.py:
AUTH_USER_MODEL = 'userauths.CustomUser'
2.Обновление ссылок на модель пользователя с помощью get_user_model():
from django.contrib.auth import get_user_model
User = get_user_model()
3.Проверили и обновили формы для использования пользовательской модели пользователя:
from django import forms
from vendorpannel.models import *
from django.contrib.auth.forms import UserCreationForm, AuthenticationForm
from django.contrib.auth.models import User
from django.db import transaction
class VendorProfileForm(forms.ModelForm):
class Meta:
model = VendorProfile
fields = [
'company_name', 'contact_number', 'address', 'city', 'state', 'zip_code',
'country', 'website', 'profile_image', 'bio'
]
4.Обновлена конфигурация администратора для использования пользовательской модели пользователя:
from django.contrib import admin
from vendorpannel.models import VendorProfile
from django.contrib.auth import get_user_model
@admin.register(VendorProfile)
class VendorProfileAdmin(admin.ModelAdmin):
list_display = ('user', 'company_name', 'contact_number', 'city', 'state', 'country')
Вот соответствующие части моего кода:
CustomUser
модель в userauths приложении:
class CustomUser(AbstractUser):
username = None
email = models.EmailField(_('email address'), unique=True)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = []
objects = CustomUserManager()
Просмотр регистрации поставщика:
def vendor_signup(request):
if request.method == 'POST':
form = VendorSignupForm(request.POST, request.FILES)
if form.is_valid():
user = form.save()
login(request, user)
messages.success(request, 'Signup successful! Welcome, {}'.format(user.username))
return redirect('home') # Replace with your desired redirect URL
else:
messages.error(request, 'There was an error with your signup. Please check the form and try again.')
else:
form = VendorSignupForm()
return render(request, 'vendorpannel/vendor_signup.html', {'form': form})
Дополнительная информация: 1.Версия Django: 3.x 2.База данных: SQLite Любая помощь в решении этой проблемы будет очень признательна!