Могу ли я разместить заказ внутри другого объекта заказа? - PullRequest
1 голос
/ 09 июля 2020

У меня есть эта настройка, в которой мой Orderable позволяет мне добавлять несколько карточек, которые будут отображать документ pdf. Однако есть ли способ отобразить Orderable внутри InLinePanel?

Например, я хочу, чтобы было 20 карточек, но внутри этих карточек количество PDF-файлов будет варьироваться от любого числа от 1 до 10. Я хочу это так как это позволяет легко находить PDF-файлы и манипулировать ими.


class ArchitectPage(Page):
    search_fields = Page.search_fields + [

    ]  # these are if adding a search to the website

    # content tab panels
    content_panels = Page.content_panels + [
        MultiFieldPanel(
            [InlinePanel('architect_pdf', max_num=20, min_num=0, label="architect doc")],
            heading="architect pdf"
        ),
    ]

    # what to call the panels on wagtail
    edit_handler = TabbedInterface([
        ObjectList(content_panels, heading='Content'),
        ObjectList(Page.promote_panels, heading='SEO'),
        ObjectList(Page.settings_panels, heading='Settings', classname='settings'),
        # classname settings adds the cog
    ])


class ArchitectDownloads(Orderable):
    page = ParentalKey(ArchitectPage, on_delete=models.CASCADE, related_name='architect_pdf')
    architect_pdf = models.ForeignKey(
        'wagtaildocs.Document',
        null=True,
        blank=True,
        on_delete=models.SET_NULL,
        related_name='+'
    )
    image = models.ForeignKey(
        'wagtailimages.Image',
        null=True,
        blank=True,
        on_delete=models.CASCADE,
        related_name='+'
    )
    caption = models.CharField(blank=True, max_length=250)

    panels = [
        ImageChooserPanel('image'),
        FieldPanel('caption'),
        DocumentChooserPanel('architect_pdf'),
    ]
{% for download in page.architect_pdf.all %} 

            <div class="document line-up-card">
                <div class="w3-card-4 w3-margin w3-white" data-aos="fade-down">


                    {% image download.image fill-150x150-c100 %}
                    {% with doc=download.architect_pdf %} 

                        <div class="w3-container">
                            {{ doc.title }}
                        </div>

                    {% endwith %}

                  <hr>
                    <p id="caption">{{ download.caption }}</p>

                    {% with doc=download.architect_pdf %}

                        <div class="download">
                            <a href="{{ doc.url }}" class="smooth-over-button noDecoration">
                                <i class="fa fa-download"></i>
                                <p class="btn-txt">PDF</p>
                            </a>

                        </div>

                    {% endwith %}


                </div>
            </div>

{% endfor %}

просмотр карты

1 Ответ

0 голосов
/ 15 июля 2020

Кажется, это то, что не было добавлено в трясогузку, но Калоб Таулейн сделал отличный учебник по альтернативе, которая выглядит так же.

Вот 2 руководства, которые вам понадобятся для их реализации.

Как добавить вам basi c Streamfield

Как использовать ListBlocks в Wagtail CMS для создания повторяющегося содержимого StreamField

...