기존 데이터베이스에서 Django 프로젝트를 빌드 중입니다. 데이터베이스가 다른 시스템에서 사용되고 있으므로 해당 스키마를 변경할 수 없습니다. 현재 데이터베이스 테이블 AbstractBaseUser.last_login
같은 역할을 last_login_date
열이있는 동안Django 사용자 정의 필드가 AbstractBaseUser와 충돌합니다.
class Users(AbstractBaseUser):
id_user = models.IntegerField(primary_key=True)
role = models.IntegerField()
username = models.CharField(max_length=50, unique=True)
last_login_date = models.DateTimeField()
AbstractBaseUser이 last_login
라는 이름의 열을 필요 : 이것은 내 현재 사용자 정의 사용자 모델입니다. 지금은 Users.last_login
에 해당 열을 사용할 필요가 장고가 부모의 필드를 무시 허용하지 않기 때문에
...
last_login = models.DateTimeField(_('last login'), default=timezone.now, column_name='last_login_date')
...
그러나 장고
django.core.exceptions.FieldError: Local field 'last_login' in class 'Users' clashes with field of similar name from base class 'AbstractBaseUser'
를 던질 것입니다.
필드를 설정하는 방법은 무엇입니까?
, 당신은 그들이 열 이름 오버라이드 (override) 할 수 있도록 할 수 있는지 장고 프로젝트 버그 보고서를 제출 할 수 있습니다 : 귀하의 경우에는 다음과 같은 할 수 있었다 레거시 데이터베이스를 준수하기 위해 AbstractBaseUser 클래스에 있습니다. – BingsF
감사합니다. ATM 다른 답변을 기다리는 동안 첫 제안을 사용합니다. – pram