在Django管理中,包括授权用户作为一个入口

2024-05-13 21:15:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我从另一个角度看了很多问题,大致如下:

class UserProfileInline(admin.StackedInline):
    model = UserProfile
    can_delete = False
    verbose_name_plural = 'profile'

class NewUserAdmin(UserAdmin):
    inlines = (UserProfileInline, )

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

我想做的是相反的,但我看不到它的工作。这是我的密码,它不起作用。在

^{pr2}$

我怎样才能使User成为SpecialUserType管理中的内联?在

我得到的错误是:

<class 'django.contrib.auth.models.User'> has no ForeignKey to <class 'students.models.SpecialUserType'>

这是有意义的,因为OneToOneField位于SpecialUserType模型中,显然而不是{}。但是我怎样才能使它在OneToOneField上反转呢?在

(我知道这样做可能看起来很不寻常,但有一个很好的理由,我希望以这种方式而不是相反的方式来设置管理员。)


Tags: modeladminmodels方式sitedeletecanclass
1条回答
网友
1楼 · 发布于 2024-05-13 21:15:27

不幸的是做不到。我已经碰到过这个问题好几次了。在

正如错误消息所说,内联模型必须有一个ForeignKey(或OneToOneField)指向主模型。在

正如其他人提到的,我发现子类化User对我非常有帮助:

class UserProfile(User):
    user = OneToOneField(User, parent_link=True)
    # more fields, etc

相关问题 更多 >