【发布时间】:2012-10-18 16:05:17
【问题描述】:
我看到了很多相反的问题,其中有以下内容:
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 上反转呢?
(我知道这似乎是一件不寻常的事情,但我有充分的理由希望以这种方式设置管理员,而不是相反。)
【问题讨论】:
-
你使用的是什么版本的 Django?
-
对 User 模型进行子类化以添加缺失的关系对您来说不起作用吗?
标签: python django django-models django-admin