私は2つのモデルを持つレストランメニューを持っています。 A Product
モデルとMenuSelection
モデルです。製品は多くのメニューに属することができます。 MenuSelection
は、インラインの関係としてProduct
に追加されます。Wagtail Snippetsインラインオブジェクトを繰り返す
私が抱えている課題は、ModelAdmin
list_display
にリストされているメニューオブジェクトです。 ForeignKey関係を作成するか、Inlineオブジェクトを反復処理する@propertyを作成する必要がありますか?私は間違いなく私の経験で別の壁に当たった。どんな助けでも大歓迎です。
MenuSelection
class MenuSelection(ClusterableModel):
menu_section = models.CharField(default=None, max_length=100, choices=MENU_CHOICES, unique=True, verbose_name='Menu Section')
menu = models.CharField(default=None, max_length=100, choices=MENU, unique=True, verbose_name='Menu')
menu_price = models.DecimalField(
blank=True,
null=True,
max_digits=5,
decimal_places=2,
verbose_name='Menu Price',
help_text='Numbers only with 2 digital decimal. I.e. 25.00'
)
panels = [
MultiFieldPanel(
[
FieldPanel('menu'),
FieldPanel('menu_section'),
FieldPanel('menu_price'),
],
heading="Menu & Prices",
classname="collapsible"
),
]
製品
class ProductMenuPrices(Orderable, MenuSelection):
page = ParentalKey('Product', related_name='menu_selection')
@register_snippet
class Product(ClusterableModel):
product_title = models.CharField(max_length=255, verbose_name='Menu Item')
product_description = models.TextField(verbose_name='Product Description', blank=True)
panels = [
MultiFieldPanel(
[
FieldPanel('product_title'),
FieldPanel('product_description'),
InlinePanel('menu_selection', label="Menu & Price Assignment", max_num=3),
],
heading="Product Detail",
classname="collapsible"
),
]
class Meta:
verbose_name = 'Menu Item'
def __str__(self):
return self.product_title
ProductModelAdmin
class ProductModelAdmin(ModelAdmin):
model = Product
menu_label = 'Menu'
menu_icon = 'snippet'
menu_order = 300
add_to_settings_menu = False
exclude_from_explorer = False
list_display = ('product_title', 'product_description')
list_filter = 'product_title',
search_fields = 'product_title',
modeladmin_register(ProductModelAdmin)
これはdjango管理者かwagtail管理者のwagtailスニペットについてですか? – dahrens
申し訳ありませんが、これらはスニペットで作成されています。 –