我有一个多对多的关系:
class GroupeCategoriesCategorie(models.Model):
groupe_categories = models.ForeignKey(GroupeCategories,
related_name='groupe',
verbose_name=_(u'Groupe'))
categorie = models.ForeignKey(Categorie,
related_name='categorie',
verbose_name=_(u'Catégorie'))
def __str__(self):
return _(u'{} / {}').format(self.groupe_categories, self.categorie)
在管理中呈现时,我总是需要在 except 之前使用类似 __str__
方法的表示。为什么?我的 admin.py
看起来像这样:
class GroupeCategoriesCategoriesInline(CollapsedStackedInline):
model = GroupeCategories.liens.through
fk_name = 'groupe_categories'
raw_id_fields = ('categorie',)
extra = 0
class GroupeCategoriesAdmin(admin.ModelAdmin):
fields = ('description', 'exemple',)
inlines = (GroupeCategoriesCategoriesInline,)
结果如下:
如您所见,当您编辑 GroupeCategories
时,您首先会看到 Description
字段,并且此 description
会针对每个 manytomany 重复排在...这很丑陋之后。我想重写 __str__
方法,但仅限于此。你是怎么做到的?
最佳答案
您可以轻松地覆盖内联使用的模板:
class GroupeCategoriesCategoriesInline(admin.StackedInline):
[...]
template = 'yourapp/admin/stackedinline.html'
获取此模板的副本:
关于django - 如何在渲染 StackedInline 字段时覆盖 str 方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34583077/