Djangoroidの奮闘記

python,django,angularJS1~三十路過ぎたプログラマーの奮闘記

Django e-commerce part35 Product Editing with Django Admin Inlines

Admin Inlineで、Productを編集する

公式ドキュメントはこちら

adminに新しいclassを設定する。

products/admin.py

class ProductAdmin(admin.ModelAdmin):
    list_display = ['__str__','price']
    class Meta:
        model = Product

admin.site.register(Product, ProductAdmin)

ポイントは、admin.site.registerに、ProductAdminも渡すのを忘れないという点。

admin.pyにtabularInlineを継承したclassを作成する

admin classにimportするときは、inlines に代入するだけ。

class VariationInline(admin.TabularInline):
    model = Variation


class ProductAdmin(admin.ModelAdmin):
    list_display = ['__str__','price']
    inlines = [
        VariationInline,
    ]
    class Meta:
        model = Product

TabularInlineを少し修正してみる。

class VariationInline(admin.TabularInline):
    model = Variation
    extra = 0

↑extraを0にする。

ProductImageInlineを作成してみる。

class ProductImageInline(admin.TabularInline):
    model = ProductImage
    extra = 0

class VariationInline(admin.TabularInline):
    model = Variation
    extra = 0


class ProductAdmin(admin.ModelAdmin):
    list_display = ['__str__','price']
    inlines = [
        ProductImageInline,
        VariationInline,
    ]
    class Meta:
        model = Product