在管理界面中看不到扩展的用户模型字段

时间:2013-02-24 17:10:03

标签: django django-models django-admin

我在我的User模型中添加了一个名为extra的字段,如下所示: -

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)

但是,我无法在用户管理页面中看到额外字段。

我做错了什么?

2 个答案:

答案 0 :(得分:0)

自编辑admin.py后,您是否重新启动了开发服务器?

另见this very similar thread

答案 1 :(得分: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和你几乎一样。下面的一些评论值得一读。