2016-08-03 11 views
0

クラスBのフィールドname3とname4がfilter_horizo​​ntalで結合されている点を除いて、以下のコードは機能します。私の質問はどのように私はname3とname4をフォーマットするのですか?たとえば、name3 = 'a'、name4 = 'b'の場合、filter_horizo​​ntalには 'a b'が表示されます。どのように 'b(a)'のようなフォーマットにするのですか?ここでDjangoのhorizo​​ntal_filterの選択肢のフォーマット

model.py 

class A(models.Model): 
    name1 = models.CharField(max_length=32) 
    name2 = models.ManyToManyField('B') 

class B(models.Model): 
    name3 = models.CharField(max_length=15) 
    name4 = models.CharField(max_length=100) 
============================= 
admin.py 

from django.contrib import admin 
from .models import A,B 

class AAdmin(admin.ModelAdmin): 
    fields = [ 'name1', 'name2'] 
    filter_horizontal = ('name1','name2') 

admin.site.register(A, AAdmin) 

答えて

2

は、あなたがそれを行う方法です。

class AAdmin(admin.ModelAdmin): 
    fields = [ 'name1', 'formatname2'] 
    filter_horizontal = ('name1','formatname2') 

    def formatname2(self, obj): 
     return "{0} ({1})".format(obj.name2.name4, obj.name2.name3) 
関連する問題