Fields.E304 Конфликты обратных аксессоров в Django для нескольких пользовательских моделей пользователей
ERRORS:
core.User.groups: (fields.E304) Reverse accessor for 'core.User.groups' clashes with reverse accessor for 'seller.User.groups'.
HINT: Add or change a related_name argument to the definition for 'core.User.groups' or 'seller.User.groups'.
core.User.user_permissions: (fields.E304) Reverse accessor for 'core.User.user_permissions' clashes with reverse accessor for 'seller.User.user_permissions'.
HINT: Add or change a related_name argument to the definition for 'core.User.user_permissions' or 'seller.User.user_permissions'.
seller.User.groups: (fields.E304) Reverse accessor for 'seller.User.groups' clashes with reverse accessor for 'core.User.groups'.
HINT: Add or change a related_name argument to the definition for 'seller.User.groups' or 'core.User.groups'.
seller.User.user_permissions: (fields.E304) Reverse accessor for 'seller.User.user_permissions' clashes with reverse accessor for 'core.User.user_permissions'.
HINT: Add or change a related_name argument to the definition for 'seller.User.user_permissions' or 'core.User.user_permissions'.
Эту ошибку я получаю, когда пытаюсь перенести две одинаковые пользовательские модели пользователя. Я скопировал код пользовательской модели пользователя из моего пользовательского приложения models.py в приложение продавца models.py.
# seller/models.py
class UserManager(BaseUserManager):
def create_user(self, email, password=None, **extra_fields):
if not email:
raise ValueError('Users must have an email address')
user = self.model(email=self.normalize_email(email), **extra_fields)
user.set_password(password)
user.save()
return user
def create_superuser(self, email, password):
user = self.create_user(email, password)
user.is_staff = True
user.is_superuser = True
user.save(using=self._db)
return user
class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(max_length=255, unique=True)
name = models.CharField(max_length=255)
is_active = models.BooleanField(default=False)
is_staff = models.BooleanField(default=False)
objects = UserManager()
USERNAME_FIELD = 'email'
# user/models.py
class UserManager(BaseUserManager):
def create_user(self, email, password=None, **extra_fields):
if not email:
raise ValueError('Users must have an email address')
user = self.model(email=self.normalize_email(email), **extra_fields)
user.set_password(password)
user.save()
return user
def create_superuser(self, email, password):
user = self.create_user(email, password)
user.is_staff = True
user.is_superuser = True
user.save(using=self._db)
return user
class User(AbstractBaseUser, PermissionsMixin):
email = models.EmailField(max_length=255, unique=True)
name = models.CharField(max_length=255)
is_active = models.BooleanField(default=False)
is_staff = models.BooleanField(default=False)
objects = UserManager()
USERNAME_FIELD = 'email'
Я пробовал переименовать пользовательскую модель пользователя, но это не помогло, я добавил отдельные AUTH_USER_MODEL
в settings.py для них обоих. Я также не знаю, куда добавить related_name
. Спасибо, также будьте терпеливы со мной, так как я начал изучать django 2 недели назад.