【发布时间】:2017-07-07 11:52:49
【问题描述】:
我有一个包含 2 个模型的餐厅菜单。 Product 模型和 MenuSelection 模型。一个产品可以属于多个菜单。 MenuSelection 作为内联关系添加到 Product。
我面临的挑战是在ModelAdminlist_display 中列出菜单对象。我是否需要创建 ForeignKey 关系或创建循环访问 Inline 对象的 @property?在我的经验中,我肯定碰到了另一面墙。任何帮助将不胜感激。
菜单选择
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 sn-ps?
-
抱歉,这些是用 Snippets 构建的。
标签: django django-models django-templates django-admin wagtail