【发布时间】:2014-12-28 07:45:42
【问题描述】:
在我的模型中,您可以看到我的 SpecializedProfile 与 UserProfile 具有 OneToOne 关系,与 django 用户模型具有 OneToOne 关系。
我想为包含 UserProfile 和 django User 模型的内联的 SpecializedProfile 创建一个管理员,这样我就可以一次创建一个 SpecializedProfile,而无需转到 UserProfile 页面和用户页面。
这是我的模型:
class UserProfile(models.Model):
user_auth = models.OneToOneField(User, related_name="profile", primary_key=True)
# more fields...
class SpecializedProfile(models.Model):
profile = models.OneToOneField(UserProfile, related_name="specialized_profile", primary_key=True)
# More fields...
这是我创建管理员的尝试:
class UserInline(admin.TabularInline):
model = User
fk_name = 'profile__specialized_profile'
class ProfileInline(admin.TabularInline):
model = UserProfile
fk_name = 'specialized_profile'
class SpecializedProfileAdmin(admin.ModelAdmin):
model = SpecializedProfile
inlines = [
UserInline, ProfileInline
]
admin.site.register(SpecializedProfile, SpecializedProfileAdmin)
管理员不工作,我收到此错误:
<class 'profiles.admin.ProfileInline'>: (admin.E202) 'profiles.UserProfile' has no field named 'trainer'.
<class 'profiles.admin.UserInline'>: (admin.E202) 'auth.User' has no ForeignKey to 'profiles.SpecializedProfile'.
django 似乎希望内联出现在定义 OneToOne 字段的模型上,并且不接受反向关系。我宁愿不必去重组我的模型来完成这项工作......我可以做些什么来让内联与我的模型一起工作吗?
【问题讨论】:
标签: python django django-admin