如何制作ManyToMany
的{{1}}属性(UserProfile
中可见user = OneToOne(User)
属性?
因此我使用了一个常用的Django-Admin
模型来登录/注册。使用User
模型中的User
扩展了此OneToOneField(User,related_name='userprofile')
模型。
UserProfile
有UserProfile
属性:
ManyToManyField
这就是问题所在。
我在languages = models.ManyToManyField(Language, through='UserProfileLanguage')
的{{1}}标签中看不到languages
。
我可以在User
标签中看到所有Django-Admin
属性,因为我这样做了:
UserProfile
但我User
标签中只能看到class UserProfileInline(admin.StackedInline):
model = UserProfile
can_delete = False
verbose_name_plural = 'User_Profile'
class UserAdmin(BaseUserAdmin):
inlines = (UserProfileInline, )
的{{1}}属性UserProfile
。我已经知道这可能是因为它User
但我无法找到如何将其放入languages
标签中。
我试图将其作为内联模型,但它会引发错误:
ManyToManyField
这是因为User
是class UserProfileInline(admin.StackedInline):
model = UserProfile
can_delete = False
verbose_name_plural = 'User_Profile'
class UserProfileLanguageLevelInline(admin.TabularInline):
model = UserProfileLanguage
# THIS DOES NOT WORK EITHER: model = User.userprofile.languages.through
class UserAdmin(BaseUserAdmin):
inlines = (UserProfileInline, UserProfileLanguageLevelInline)
<class 'SolutionsForLanguagesApp.admin.UserProfileLanguageLevelInline'>: (admin.
E202) 'SolutionsForLanguagesApp.UserProfileLanguage' has no ForeignKey to 'auth.
User'.
的属性,而不是languages
,但我不是UserProfile
。知道如何解决这个问题。
答案 0 :(得分:0)
在您的情况下,如果您看到languages
但未编辑User
标签中的字段,请使用readonly_fields
:
class UserProfileInline(admin.StackedInline):
model = UserProfile
can_delete = False
verbose_name_plural = 'User_Profile'
readonly_fields = ('languages',)
class UserAdmin(BaseUserAdmin):
inlines = (UserProfileInline, )