Django - 许多类型的用户 - 添加/更改实例,包括用户字段

时间:2015-05-02 10:30:48

标签: django django-models django-admin

当我开始对应用程序进行建模时,由于我有很多类型的用户,我首先要完全定义自己的用户模型,或者对其进行子类化。但是我最终选择遵循标准推荐的方式,使用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个用户,这有点耗时。这无论如何都不是用户友好的(管理员不适合开发者)。

因此,为了找到更好的方法,我几天都在挠头:

  • 特殊的友好添加/更改表单,我可以编辑某些用户字段
  • 专业版的友好添加/更改表单,我可以编辑一些用户字段
  • Brand的友好添加/更改表单,我可以编辑一些用户字段
  • 工作人员的友好添加/更改表单,我可以编辑一些用户字段
  • 保留用户的原始更改表单,以获取高级版

是否可以使用ParticularAdmin,ProfessionalAdmin,BrandAdmin和StaffAdmin完成,或者我应该在UserAdmin中定义自定义视图?

详细信息:Django 1.8,目前尚未安装扩展程序/插件。

0 个答案:

没有答案