Django:StackedInline 的更友好的标题,用于通过模型自动生成? [英] Django: Friendlier header for StackedInline for auto generated through model?

查看:15
本文介绍了Django:StackedInline 的更友好的标题,用于通过模型自动生成?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我用的是Django admin StackedInline,如下:

I'm using a Django admin StackedInline, as follows:

class BookInline(admin.StackedInline):
    model = Book.subject.through
    verbose_name = 'Book'
    verbose_name_plural = 'Books with this subject'

class SubjectAdmin(admin.ModelAdmin):
    inlines = [
        BookInline,
    ]

一切正常,但标题非常难看:

It all works, but the header is pretty ugly:

Books With This Subject
Book: Book_subject object

有谁知道我可以如何摆脱或更改 Book_subject 对象 部分?

Anyone know how I can get rid of, or change, the Book_subject object part?

谢谢!

推荐答案

我从来没有用过这样的m2m字段,谢谢!学到了新东西.

I've never used an m2m field like this, so thanks! Learned something new.

我找到了两种解决问题的方法:

I found 2 ways to get around the problem:

1:只需用新函数重新分配 __unicode__ 函数

1: simply reassign the __unicode__ function with a new function

class MyInline(admin.TabularInline):
    MyModel.m2m.through.__unicode__ = lambda x: 'My New Unicode'
    model = MyModel.m2m.through

2:设置代理模型对于 m2m.through 模型并改用该模型

2: set up a proxy model for the m2m.through model and use that model instead

class MyThrough(MyModel.m2m.through):
    class Meta:
        proxy = True
    def __unicode__(self):
        return "My New Unicode"

class MyInline(admin.TabularInline):
    model = MyThrough

这篇关于Django:StackedInline 的更友好的标题,用于通过模型自动生成?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆