【发布时间】:2015-02-12 14:38:21
【问题描述】:
我正在从现有数据库构建一个 Django 项目。该数据库正在被其他系统使用,因此我无法更改其架构。这是我当前的自定义用户模型:
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 的列,而当前数据库表有last_login_date 列,其作用类似于AbstractBaseUser.last_login。现在我需要在Users.last_login 中使用该列:
...
last_login = models.DateTimeField(_('last login'), default=timezone.now, column_name='last_login_date')
...
但是 Django 会抛出 django.core.exceptions.FieldError: Local field 'last_login' in class 'Users' clashes with field of similar name from base class 'AbstractBaseUser',因为 Django 不允许覆盖父字段。
如何设置字段?
【问题讨论】:
标签: python django django-models django-orm