Трясогузка, заказываемая в заказе для навигационной ошибки? - PullRequest
1 голос
/ 11 мая 2019

Я хочу создать несколько подменю для разных страниц сайта.Итак, я создал фрагмент под названием «Подменю».

Подменю содержит объект с именем submenu_items.На веб-странице это переводит на верхний уровень навигации.Затем каждый submenu_item имеет dropdown_items.Таким образом, под каждой ссылкой верхнего уровня я могу создать раскрывающийся список с большим количеством ссылок.

Проблема:
Каждый раз, когда я создаю новый элемент submenu_item, он создает 3 элемента dropdown_items (пример на фотониже).Я ожидал, что он предоставит кнопку ДОБАВИТЬ ПУНКТ УДАЛЕНИЯЗатем я буду создавать по одному по мере необходимости.Кажется, код генерирует три по умолчанию.

Я попытался удалить их, сохранив фрагмент кода.Но когда я нажимаю на фрагмент, они снова там.Я попытался воссоздать всю модель и перенести все заново.У меня все та же проблема.

Может кто-нибудь указать, что я могу делать неправильно?Есть ли какое-то правило для вложенных элементов, которые мне не хватает?

enter image description here

@register_snippet
class Submenu(ClusterableModel):
    text = models.CharField(max_length=255)
    subsite_url = models.CharField(max_length=255)

    panels = [
        FieldPanel('text'),
        FieldPanel('subsite_url'),
        InlinePanel('submenu_items', label="Submenu Items"),
    ]

    def __str__(self):
        return self.text

class SubmenuItem(ClusterableModel, Orderable):
    page = ParentalKey(Submenu, on_delete=models.CASCADE, related_name='submenu_items')

    menu_item = models.CharField(blank=True, max_length=250)
    internal_url = models.CharField(blank=True, max_length=250)

    panels = [
        FieldPanel('menu_item'),
        FieldPanel('internal_url'),
        InlinePanel('dropdown_items', label="Dropdown Items"),
    ]    

class DropdownItem(Orderable):
    page = ParentalKey(SubmenuItem, on_delete=models.CASCADE, related_name='dropdown_items')

    menu_item = models.CharField(blank=True, max_length=250)
    internal_url = models.CharField(blank=True, max_length=250)

    panels = [
        FieldPanel('menu_item'),
        FieldPanel('internal_url'),
    ]

1 Ответ

0 голосов
/ 20 мая 2019

Какова цель класса DropdownItem?Я считаю, SubmenuItem и DropdownItem являются избыточными.Если вы вернетесь к учебнику по трясогузке и посмотрите на пример изображений галереи, вы найдете свой ответ.

http://docs.wagtail.io/en/v2.0/getting_started/tutorial.html#images

Авторы создают BlogPageGalleryImage, который наследует Orderable.Вы можете использовать ту же структуру ParentalKey для SubmenuItem.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...