Трясогузка / Использование ListBlock без некоторых атрибутов в миксине

#django #wagtail

Вопрос:

Мой класс микширования:

 class FeatureList(blocks.StructBlock):
    title = blocks.TextBlock(default=None, blank=True, null=True)
    description = blocks.ListBlock(blocks.TextBlock(default=None, blank=True, null=True))
    button_label = blocks.TextBlock(required=False, default=None, blank=True, null=True)
    button_url = blocks.URLBlock(required=False)
 

и мои модели

 class ThreeListsBlock(DefaultFields, ThemeChooser, blocks.StructBlock):

    class Meta:
        icon = 'grip'

    tiles = blocks.ListBlock(FeatureList(), required=True)
 

Как я могу использовать в трех списках атрибуты блока из FeatureList() без button_url и button_label? Я не хочу создавать микширование списка функций копирования.

Я хочу видеть в трех списках только заголовок и описание. Спасибо

Ответ №1:

Я предлагаю вам создать BasicList файл с названием и описанием, а затем расширить его как FeatureList , в котором также будет button_label и button_url .

Затем вы можете указать BasicList в ThreeListsBlock поле Блок списка.

 class BasicList(blocks.StructBlock):
    title = blocks.TextBlock(default=None, blank=True, null=True)
    description = blocks.ListBlock(blocks.TextBlock(default=None, blank=True, null=True))

class FeatureList(BasicList):
    button_label = blocks.TextBlock(required=False, default=None, blank=True, null=True)
    button_url = blocks.URLBlock(required=False)

class ThreeListsBlock(DefaultFields, ThemeChooser, blocks.StructBlock):
    tiles = blocks.ListBlock(BasicList(), required=True)