我在我的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)
但是,我无法在用户管理页面中看到额外字段。
我做错了什么?
答案 0 :(得分:0)
自编辑admin.py
后,您是否重新启动了开发服务器?
答案 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和你几乎一样。下面的一些评论值得一读。