У меня есть меню ресторана с 2 моделями. A Product
модель и модель MenuSelection
. Продукт может принадлежать многим меню. MenuSelection
добавляется к Product
в качестве встроенного отношения.Итерации через трясогузки Фрагменты Inline Объекты
Задача, которую я испытываю, заключается в перечислении объектов меню в ModelAdmin
list_display
. Нужно ли мне создавать отношения ForeignKey или создавать @property, которые повторяются через объекты Inline? Я определенно ударил по другой стене. Любая помощь приветствуется.
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 или о фрагментах трюков в трясогузке администратора? – dahrens
Извините, они строятся с помощью фрагментов. –