当我开始对应用程序进行建模时,由于我有很多类型的用户,我首先要完全定义自己的用户模型,或者对其进行子类化。但是我最终选择遵循标准推荐的方式,使用OneToOneField:
class Member(models.Model):
class Meta:
abstract = True
user = models.OneToOneField(User)
... more fields ..
class Particular(Member):
... even more fields ...
class Professional(Member):
... even more fields ...
class Brand(Member):
... even more fields ...
class Staff(Member):
... even more fields ...
但是,现在我正面临与管理员打交道的问题。我有我的4 XxxAdmin,但我无法编辑用户名,first_name,last_name和电子邮件字段,因为它们位于用户模型中,该模型没有自定义成员类型的外键。我无法添加成员,因为它需要首先创建用户而我禁用了外键选择字段,因为我们有超过100.000个用户,这有点耗时。这无论如何都不是用户友好的(管理员不适合开发者)。
因此,为了找到更好的方法,我几天都在挠头:
是否可以使用ParticularAdmin,ProfessionalAdmin,BrandAdmin和StaffAdmin完成,或者我应该在UserAdmin中定义自定义视图?
详细信息:Django 1.8,目前尚未安装扩展程序/插件。