我试图在django-admin中显示相关模型的相关模型。 现在,我的模型和admin.py看起来像:
class CharacterChoiceInline(admin.TabularInline):
model = CharacterModel
fields = ['nickname', 'gender', 'image']
extra = 1
class UserModelAdmin(admin.ModelAdmin):
fieldsets = [
(None, {'fields': [
'username', 'email',
...
]
})
]
inlines = [CharacterChoiceInline]
admin.site.register(User, UserModelAdmin)
我的CharacterModel
与另一个模型RaceModel
相关。
class RaceModel(models.Model):
name = models.CharField("Race", max_length=254)
character = models.ForeignKey("CharacterModel",
null=True, blank=True, on_delete=models.SET_NULL, related_name='+')
class CharacterModel(models.Model):
nickname = models.CharField("Character nickname", max_length=254)
gender = models.CharField(choices=GENDER, max_length=10, default='male')
image = models.URLField(blank=True)
在Admin中,它看起来像这样:
如何在RaceModel
中添加此额外的CharacterChoiceInline(admin.TabularInline):
字段,以便能够通过用户管理员视图为每个字符选择“种族”?
答案 0 :(得分:0)
您可能会发现首先为单个CharacterModel创建一个管理页面,使它正常工作,然后再回到UserModel管理屏幕上工作,会很有帮助。
您要尝试做的很简单。只需将一个名为race
的ForeignKey字段添加到CharacterModel即可。它会以种族选项的下拉选择形式显示在您的表单中。我建议在RaceModel中添加一个明确的id
字段;您不想按名称链接字段。您希望主键在编辑文本时不会改变。