gpt4 book ai didi

python - 在 Django 管理中,包括 auth.User 作为内联

转载 作者:太空狗 更新时间:2023-10-30 00:17:57 24 4
gpt4 key购买 nike

我已经看到很多相反的问题,其中包含以下内容:

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)

我想做的是相反的,但我看不到让它工作。这是我无法使用的代码。

from django.contrib import admin
from django.contrib.auth.admin import UserAdmin
from django.contrib.auth.models import User
from myapp.models import SpecialUserType

class UserInline(admin.StackedInline):
model = User
can_delete = False

class IncludeUserAdmin(admin.ModelAdmin):
inlines = (UserInline,)

admin.register(SpecialUserType, IncludeUserAdmin)

我怎样才能使这项工作使 User 成为 SpecialUserType 管理员中的内联?

我得到的错误是:

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

这是有道理的,因为 OneToOneField 位于 SpecialUserType 模型中,显然不在 User 中。但是我怎样才能让它在 OneToOneField 上反转?

(我知道这似乎是一件不寻常的事情,但我有充分的理由想以这种方式设置管理员,而不是相反。)

最佳答案

不幸的是,它无法完成。我已经多次遇到这个问题。

如错误消息所述,内联模型必须具有指向主模型的外键(或 OneToOneField)。

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

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

关于python - 在 Django 管理中,包括 auth.User 作为内联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12958923/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com