我正在使用Django管理员StackedInline,如下所示:
class BookInline(admin.StackedInline):
model = Book.subject.through
verbose_name = 'Book'
verbose_name_plural = 'Books with this subject'
class SubjectAdmin(admin.ModelAdmin):
inlines = [
BookInline,
]
一切正常,但标题非常难看:
Books With This Subject
Book: Book_subject object
任何人都知道如何摆脱或改变Book_subject object
部分?
谢谢!
答案 0 :(得分:8)
我从未使用像这样的m2m字段,谢谢!学到了新的东西。
我找到了解决问题的两种方法:
1:只需使用新功能
重新分配__unicode__
功能
class MyInline(admin.TabularInline):
MyModel.m2m.through.__unicode__ = lambda x: 'My New Unicode'
model = MyModel.m2m.through
2:为m2m.through模型设置proxy model并使用该模型
class MyThrough(MyModel.m2m.through):
class Meta:
proxy = True
def __unicode__(self):
return "My New Unicode"
class MyInline(admin.TabularInline):
model = MyThrough
答案 1 :(得分:1)
出于某种原因,(承认现在已经很久)接受的答案对我不起作用。
然而,这个修改改变了标题:
MyModel.field.through.__str__ = lambda x: 'New Title'
其中field
是ManyToMany字段。