在我的模型中,您可以看到我有一個與UserProfile具有OneToOne關係的SpecializedProfile,與django用戶模型具有OneToOne關係。Django Admin與OneToOne字段一致
我想創建一個包含UserProfile和django用戶模型內聯的SpecializedProfile的管理員,以便我可以一次創建一個SpecializedProfile,而無需轉到UserProfile頁面和User頁面。
這裏是我的模型:
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字段被定義的模型上,並且不會交流切入反向關係。我寧願不必重構我的模型來完成這項工作......有什麼我可以做的,以使內聯原型與我的模型一起工作?