我是django的新手,我正在关注一些视频讲座。完全按照说明完成后无法添加额外的归档用户管理界面。我附上modes.py和admin.py进行检查。请帮帮我
models.py
class UserProfile(models.Model):
user = models.OneToOneField(User, unique=True)
#Extra values
bio = models.TextField(null=True)
def __unicode__(self):
return '%s Profile' % self.user
def create_profile(sender, instance, created, **kwargs):
if created:
profile, created = UserProfile.objects.get_or_create(user=instance)
from django.db.models.signals import post_save
post_save.connect(create_profile, sender=User )
Admin.py
class UserProfileInLIne(admin.StackedInline):
model = UserProfile
can_delete = False
class UserProfileAdmin(UserAdmin):
inline = (UserProfileInLIne, )
admin.site.unregister(User)
admin.site.register(User, UserProfileAdmin)
答案 0 :(得分:1)
为什么不只是为自己省去麻烦并使用自定义用户模型?
> django docs on custom user model
这样你就有了一个用于写入的模型,只有一个模型用于在你的视图中调用它时。
# settings.py
AUTH_USER_MODEL = 'yourapp.UserProfile'
# models.py
class UserProfile(AbstractBaseUser):
#Extra values
bio = models.TextField(null=True)
# admin.py
admin.site.register(UserProfile)
以及您想要使用用户实例的其他任何地方(即其他模型,视图)只需使用settings.AUTH_USER_MODEL
答案 1 :(得分:1)
我认为问题在于您使用的是inline
而不是inlines
。在这里,您可以找到django源代码ModelAdmin class的链接。
希望这有帮助。