2011-02-08 9 views
6

次のように私は、Djangoの管理StackedInlineを使用しています:それはすべての作品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

答えはここにあるかもしれない:http://stackoverflow.com/questions/5086537/how-to-omit-object-name-from-djangos-tabularinline-admin-view –

答えて

8

私はこのようなm2mフィールドを使ったことがないので、ありがとう!新しいことを学びました。

1:

は私が問題を回避するには2つの方法を発見しただけで

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

2新機能と__unicode__機能を再割り当て: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 
+0

ああ、私の 'Book'と私の' Subject'モデルはすでに '__unicode__'メソッドが定義されています。しかし、これは 'Book.subject.through'を使っています(SubjectはBookのManyToManyFieldです)ので、定義するユニコードメソッドはないと思います。どのように私はこれの周りに得ることができる任意のアイデア? – AP257

+0

私はあなたがm2mでそれを行うことができたことさえ知りませんでした。ありがとう!はい、解決策を見つけました。アップデート –

+0

素晴らしいです、ありがとうございます! – AP257

関連する問題