Ros*_*oss 5 python django django-models abstractuser
我需要帮助。我正在 Django 中创建一个应用程序,但在迁移自定义用户的类时遇到一些问题。错误是:
ERRORS: auth.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor for 'Usuario.groups'.
HINT: Add or change a related_name argument to the definition for 'User.groups' or 'Usuario.groups'. auth.User.user_permissions: (fields.E304) Reverse accessor for 'User.user_permissions' clashes with reverse accessor for 'Usuario.user_permissions'.
HINT: Add or change a related_name argument to the definition for 'User.user_permissions' or 'Usuario.user_permissions'. usuarios.Usuario.groups: (fields.E304) Reverse accessor for 'Usuario.groups' clashes with reverse accessor for 'User.groups'.
HINT: Add or change a related_name argument to the definition for 'Usuario.groups' or 'User.groups'. usuarios.Usuario.user_permissions: (fields.E304) Reverse accessor for 'Usuario.user_permissions' clashes with reverse accessor for 'User.user_permissions'.
HINT: Add or change a related_name argument to the definition for 'Usuario.user_permissions' or 'User.user_permissions'.
Run Code Online (Sandbox Code Playgroud)
现在,这是我的代码:
我的型号:
ERRORS: auth.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor for 'Usuario.groups'.
HINT: Add or change a related_name argument to the definition for 'User.groups' or 'Usuario.groups'. auth.User.user_permissions: (fields.E304) Reverse accessor for 'User.user_permissions' clashes with reverse accessor for 'Usuario.user_permissions'.
HINT: Add or change a related_name argument to the definition for 'User.user_permissions' or 'Usuario.user_permissions'. usuarios.Usuario.groups: (fields.E304) Reverse accessor for 'Usuario.groups' clashes with reverse accessor for 'User.groups'.
HINT: Add or change a related_name argument to the definition for 'Usuario.groups' or 'User.groups'. usuarios.Usuario.user_permissions: (fields.E304) Reverse accessor for 'Usuario.user_permissions' clashes with reverse accessor for 'User.user_permissions'.
HINT: Add or change a related_name argument to the definition for 'Usuario.user_permissions' or 'User.user_permissions'.
Run Code Online (Sandbox Code Playgroud)
在我的settings.py:
from django.db import models from django.contrib.auth.models import AbstractUser from django.conf import settings
class CustomUser(AbstractUser):
email = models.EmailField(unique=True, max_length=80)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['USERNAME']
def __str__(self):
return self.email
class Perfil(models.Model):
user=models.OneToOneField(CustomUser, related_name="usuario_user" , on_delete=models.CASCADE)
nacionality= models.ForeignKey(Paises, on_delete=models.DO_NOTHING)
rol= models.ForeignKey(Rol, on_delete=models.DO_NOTHING) def str(self): return self.CustomUser
birth_date=models.DateField()
Run Code Online (Sandbox Code Playgroud)
您可以更改继承的基本模型,而不是AbstractUser,只需使用User即可:
from django.contrib.auth.models import User
class CustomUser(User):
email = models.EmailField(unique=True, max_length=80)
USERNAME_FIELD = 'email'
REQUIRED_FIELDS = ['USERNAME']
def __str__(self):
return self.email
Run Code Online (Sandbox Code Playgroud)
参考此参考https://docs.djangoproject.com/fr/4.0/topics/auth/customizing/#extending-the-existing-user-model
现在效果会更好。非常感谢您的提问。
并在settings.py中正确添加这一行:
AUTH_USER_MODEL = 'name_of_app.NameOfModel'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6007 次 |
| 最近记录: |