2016-11-16 8 views
0

管理領域に外部キー用のフィールドを表示するのは簡単ですが、throughが使用されている場合、多対多リレーションシップのフィールドを表示するにはどうすればよいですか?Django Admin Areaで多対多の関係フィールドを表示するには(多対多の関係が 'through'を使用している場合)?

Models.py:

class Pizza(models.Model): 
    toppings = models.ManyToManyField(Topping, through='PizzaTopping') 

class Topping(models.Model): 
    topping = models.CharField(max_length=255) 

class PizzaTopping(models.Model): 
    pizza = models.ForeignKey(Pizza) 
    topping = models.ForeignKey(Topping) 

Admin.py:

class PizzaAdmin(admin.ModelAdmin): 
    fieldsets = (
     (None, { 
      'fields': ('toppings') 
     }), 
    }) 
) 

これは、次のエラー生成:

<class 'pizzas.admin.PizzaAdmin'>: (admin.E013) The value of 'fieldsets[0][1]["fields"]' cannot include the many-to-many field 'toppings' because that field manually specifies a relationship model. 

を、私は私を可能にボックスやリストボックスを表示しますトッピングを選択する。

これは可能ですか?

ありがとうございます。

答えて

1

トッピングをインラインで表示できます。

from django.contrib import admin 

class ToppingInline(admin.TabularInline): 
    model = PizzaTopping 

class Pizza(admin.ModelAdmin): 
    inlines = [ 
     ToppingInline, 
    ] 
    exclude = ('toppings',) 

は、詳細はworking with many-to-many modelsの管理者のドキュメントを参照してください。

+0

乾杯。 –