【问题标题】:AbstractUser is not working Django ! (Substituting a custom User model)AbstractUser 不工作 Django ! (替换自定义用户模型)
【发布时间】:2018-09-18 09:26:18
【问题描述】:

应用名称是“后端”

Models.py

from django.db import models
from django.contrib.auth.models import User
from django.contrib.auth.models import AbstractUser

class User(AbstractUser):
    fb_userid = models.CharField(max_length=256)

Settings.py

AUTH_USER_MODEL = 'backend.User'

INSTALLED_APPS = [
    'backend.apps.BackendConfig',
    'rest_framework',
    'rest_framework.authtoken',
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
    'django.contrib.sessions',
    'django.contrib.messages',
    'django.contrib.staticfiles',
    'oauth2_provider',
    'bffcode',
]

错误:

ERRORS:
backend.CustomUser.groups: (fields.E304) Reverse accessor for 'CustomUser.groups' clashes with reverse accessor for 'User.groups'.
    HINT: Add or change a related_name argument to the definition for 'CustomUser.groups' or 'User.groups'.
backend.CustomUser.user_permissions: (fields.E304) Reverse accessor for 'CustomUser.user_permissions' clashes with reverse accessor for 'User.user_permissions'.
    HINT: Add or change a related_name argument to the definition for 'CustomUser.user_permissions' or 'User.user_permissions'.
bffcode.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor for 'CustomUser.groups'.
    HINT: Add or change a related_name argument to the definition for 'User.groups' or 'CustomUser.groups'.
bffcode.User.user_permissions: (fields.E304) Reverse accessor for 'User.user_permissions' clashes with reverse accessor for 'CustomUser.user_permissions'.
    HINT: Add or change a related_name argument to the definition for 'User.user_permissions' or 'CustomUser.user_permissions'.

我正在尝试在我的项目中替换用户模型,但我无法创建迁移

【问题讨论】:

  • 不要导入用户,你没有使用它。
  • 请不要发布错误图片 - 复制粘贴文本版本。
  • 回溯抱怨CustomUser,而您的模型似乎没有它。这节课讲什么?

标签: python django python-3.x django-models django-rest-framework


【解决方案1】:

我同意 Daniel 不导入用户,但如果您在项目中期更改为自定义用户模型,由于 Django 对可交换模型的动态依赖功能的限制,会产生后果,

AUTH_USER_MODEL 引用的模型必须在其应用的第一次迁移中创建(通常称为 0001_initial);否则,您将遇到依赖问题。

django official documentation

【讨论】:

    猜你喜欢
    • 2022-12-12
    • 1970-01-01
    • 2018-11-01
    • 1970-01-01
    • 1970-01-01
    • 2013-09-22
    • 2021-09-30
    • 1970-01-01
    • 2017-09-24
    相关资源
    最近更新 更多