看不到扩展用户模型领域的管理界面
我添加了一个字段,我叫额外的用户模型,如下所示: -看不到扩展用户模型领域的管理界面
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)
但是,我无法在用户的管理页面中看到额外的字段。
我做错了什么?
自编辑admin.py
以来,您是否重新启动了开发服务器?请参阅this very similar thread。
是的,重新启动dev服务器 - 没有任何区别。 – bodger 2013-02-24 18:14:04
你的第一块代码对我来说看起来不错,尽管你可能想使用装饰器来提高可读性。这是一个更新的例子。
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该做的还很多和你一样。下面的一些评论值得一读。
可悲的是,这是行不通的。 无论如何,UserAdmin当然是错误的类名?我使用的是ExtendedUserAdmin - 因为我扩展了通常的UserAdmin。 – bodger 2013-02-24 18:12:58
你是对的。答案已删除。要试着复制你的代码。 – chirinosky 2013-02-24 18:40:54
已更新的答案。希望这可以帮助。 – chirinosky 2013-02-24 18:54:34
nope,那也行不通。 – bodger 2013-02-25 08:20:52
添加额外的逗号没有任何区别。 – bodger 2013-02-26 15:09:58