2012-06-05 169 views
1

我需要在我的應用程序中創建自定義用戶。在Django中創建自定義用戶並自定義管理員

the example given in the doc

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

用戶必須創建CustomUser之前就存在。

我想要做的是在創建CustomUser時自動創建一個用戶。

在CustomUser admin中(只有超級用戶才能看到),我想只有用戶模型中的自定義字段和幾個字段,以及一些允許超級用戶更改現有密碼的形式實例。

有人可以幫忙嗎?

+0

參考此鏈接 http://stackoverflow.com/questions/44109/extending-the-user-model-with-custom-fields-in-django – irshad

回答

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

+0

但是,如果我的理解很好,這創建用戶時創建CustomUser。我反過來想要它。我想要一個管理員來創建一個CustomUser,它會自動創建一個用戶。 – jul

+0

然後做到這一點,並將您的用戶字段設置爲空白= True和null = True –