2013-02-24 78 views
0

我添加了一個字段,我叫額外的用戶模型,如下所示: -看不到擴展用戶模型領域的管理界面

class ExtendedUser(models.Model): 
user = models.OneToOneField(User) 
extra = models.CharField(max_length=30, null=True) 

# when a user is created, make sure an ExtendedUser is created too 
def create_extended_user(sender, instance, created, *args, **kwargs): 
    if created: 
     extended_user = ExtendedUser(user=instance) 
     extended_user.save() 
post_save.connect(create_extended_user, sender=User) 

在我的admin.py,我儘量保證我可以編輯這個當我編輯用戶時額外字段: -

class ExtendedUserInline(admin.TabularInline): 
    model = ExtendedUser 
    fk_name = 'user' 
    max_num = 1 

class ExtendedUserAdmin(UserAdmin): 
    inlines = [ExtendedUserInline] 

admin.site.unregister(User) 
admin.site.register(User, ExtendedUserAdmin) 

但是,我無法在用戶的管理頁面中看到額外的字段。

我做錯了什麼?

+0

nope,那也行不通。 – bodger 2013-02-25 08:20:52

+0

添加額外的逗號沒有任何區別。 – bodger 2013-02-26 15:09:58

回答

0

自編輯admin.py以來,您是否重新啓動了開發服務器?請參閱this very similar thread

+0

是的,重新啓動dev服務器 - 沒有任何區別。 – bodger 2013-02-24 18:14:04

0

你的第一塊代碼對我來說看起來不錯,儘管你可能想使用裝飾器來提高可讀性。這是一個更新的例子。

class ExtendedUser(models.Model): 
user = models.OneToOneField(User) 
extra = models.CharField(max_length=30, null=True) 

# when a user is created, make sure an ExtendedUser is created too 
@receiver(post_save, sender=User)  
def create_extended_user(sender, instance, created, *args, **kwargs): 
     if created: 
      extended_user = ExtendedUser(user=instance) 
      extended_user.save() 

更新答:

您需要設置AUTH_PROFILE_MODULE = 'app_name.ExtendedUser'

Here's a post該做的還很多和你一樣。下面的一些評論值得一讀。

+0

可悲的是,這是行不通的。 無論如何,UserAdmin當然是錯誤的類名?我使用的是ExtendedUserAdmin - 因爲我擴展了通常的UserAdmin。 – bodger 2013-02-24 18:12:58

+0

你是對的。答案已刪除。要試着複製你的代碼。 – chirinosky 2013-02-24 18:40:54

+0

已更新的答案。希望這可以幫助。 – chirinosky 2013-02-24 18:54:34