在Django中创建自定义用户并自定义管理员

时间:2012-06-05 12:38:13

标签: django admin

我需要在我的应用中创建自定义用户。

the example given in the doc

class CustomUser(models.Model):
    user = models.OneToOneField(User)
    #custom fields

在创建CustomUser之前,用户必须存在。

我想要做的是在创建CustomUser时自动创建用户。

在CustomUser admin中(仅超级用户可见),我想只有自定义字段和User模型中的一些字段,以及允许超级用户更改现有实例的密码的表单

有人可以帮忙吗?

1 个答案:

答案 0 :(得分:3)

问题的第一部分很简单,您可以使用信号:

def create_custom_user(sender, instance, created, **kwargs):
    if created:
        custom_user, created = CustomUser.objects.get_or_create(user=instance)

post_save.connect(create_custom_user, sender=User)

至于第二部分,管理员中已经有一个更改密码表单。要过滤掉显示的字段,您可以创建CustomUserAdmin并将其与模型一起注册。它在django文档中非常自我​​解释。

django docs: list_display