auth.User.groups: (필드).E304) 'User.groups'의 역방향 접근자가 'UserManage.groups'의 역방향 접근자와 충돌함
나의 장고 프로젝트에 나는 있습니다.user_manage
앱.
다음 모델을 만듭니다.UserManage
내 안에서user_manage
앱의 모델.py:
from django.db import models
from django.contrib.auth.models import AbstractUser
class UserManage(AbstractUser):
username = models.CharField(max_length=12)
그럼 난 도망갈거야.
$ python3 manage.py makemigrations
오류가 발생합니다.
ERRORS:
auth.User.groups: (fields.E304) Reverse accessor for 'User.groups' clashes with reverse accessor for 'UserManage.groups'.
HINT: Add or change a related_name argument to the definition for 'User.groups' or 'UserManage.groups'.
auth.User.user_permissions: (fields.E304) Reverse accessor for 'User.user_permissions' clashes with reverse accessor for 'UserManage.user_permissions'.
HINT: Add or change a related_name argument to the definition for 'User.user_permissions' or 'UserManage.user_permissions'.
users_management.UserManage.groups: (fields.E304) Reverse accessor for 'UserManage.groups' clashes with reverse accessor for 'User.groups'.
HINT: Add or change a related_name argument to the definition for 'UserManage.groups' or 'User.groups'.
users_management.UserManage.user_permissions: (fields.E304) Reverse accessor for 'UserManage.user_permissions' clashes with reverse accessor for 'User.user_permissions'.
HINT: Add or change a related_name argument to the definition for 'UserManage.user_permissions' or 'User.user_permissions'.
다음 항목 추가settings.py
:
AUTH_USER_MODEL = "users_management.UserManage"
더 일반적으로 말하면,
AUTH_USER_MODEL = 'YourAppName.YourClassName'
- 앱 이름:사용자 모델이 포함될 앱의 이름입니다.
- 클래스 이름:models.py 파일 내에서 사용되는 클래스의 이름입니다.
설정에 추가합니다.
AUTH_USER_MODEL = 'APPNAME.User'
이런 식으로 우리는 장고에게 기본 모델 대신 우리의 사용자 정의 모델을 사용하라고 말하고 있습니다.https://docs.djangoproject.com/en/2.2/topics/auth/customizing/ #사용자 정의 사용자 모델 배포
이 setting.py 을 추가합니다.AUTH_USER_MODEL = "myapp.User"
코드 끝에 있는 설정에 다음을 추가합니다.
AUTH_USER_MODEL="users.CustomUser"
해결책은 먼저 다음 행을 settings.py 에 추가하는 것입니다.
AUTH_USER_MODEL="myproject.User"
여기서 내 프로젝트는 당신의 프로젝트 이름입니다.다시 오류가 발생하면 기본 디렉토리에서 다음 명령을 실행합니다.
python manage.py makemigrations
python manage.py migrate
이것은 나에게 효과가 있었습니다.
그냥 추가AUTH_USER_MODEL="your app name.User"
에settings.py
아래 코드에 나타난 바와 같이
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.sqlite3',
'NAME': os.path.join(BASE_DIR, 'db.sqlite3'),
}
}
AUTH_USER_MODEL="myproject.User"
# Password validation
# https://docs.djangoproject.com/en/2.2/ref/settings/#auth-password-validators
AUTH_PASSWORD_VALIDATORS = [
{
'NAME': 'django.contrib.auth.password_validation.UserAttributeSimilarityValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.MinimumLengthValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.CommonPasswordValidator',
},
{
'NAME': 'django.contrib.auth.password_validation.NumericPasswordValidator',
},
]
위의 단계가 작동하지 않으면 모든 마이그레이션 기록과 데이터베이스를 삭제합니다.
그런 다음 처음처럼 "이행"하고 "이행"합니다.
처음 마이그레이션하기 전에 프로젝트 시작 시 사용자 모델을 만들어야 합니다.
언급URL : https://stackoverflow.com/questions/49189402/auth-user-groups-fields-e304-reverse-accessor-for-user-groups-clashes-with
'source' 카테고리의 다른 글
Oracle SQL Developer에서 밑줄을 피하는 방법은 무엇입니까? (0) | 2023.07.20 |
---|---|
파이썬에서 코드 행 사이에 걸리는 시간을 측정하는 방법은 무엇입니까? (0) | 2023.07.20 |
판다의 큰 상관 행렬에서 가장 높은 상관 관계 쌍을 나열하시겠습니까? (0) | 2023.07.20 |
보조 그룹에만 연결된 경우 Oracle이 로컬 파일을 읽을 수 있습니까? (0) | 2023.07.20 |
이전 커밋을 체크아웃하고 새 커밋으로 만듭니다. (0) | 2023.07.15 |