Как использовать диаграмму с Wagtail CMS

Мне нужно включить пользовательские диаграммы в функцию потокового поля, как вы можете найти с Tauchart.

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

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

О чем вы думаете? Какова лучшая практика для вас?

У вас есть примеры интеграции Taucharts в CMS?

0 ответов

Вы можете создать собственный блок внутри blocks.py, например LineChartBlock(), который ссылается на шаблон с именем line_chart.html. Вам нужно будет импортировать свой пользовательский блок в файл models.py, чтобы добавить его в свой StreamField. Затем пользователь на стороне администратора CMS может вводить значения и сохранять их в качестве параметров. Который вы можете затем передать в шаблон как динамические переменные JavaScript, которые вы можете использовать для создания своей пользовательской диаграммы. Вот супер грубая идея...

Так что blocks.py будет выглядеть так:

from wagtail.core import blocks

class LineChartBlock(blocks.StructBlock):
    title = blocks.CharBlock()
    x = blocks.DecimalBlock()
    y = blocks.DecimalBlock()
    data = JSONField()

    class Meta:
        template = 'blocks/line_chart.html'

Ваши models.py:

class BlogPage(Page):
    body = StreamField([
        ('paragraph', RichTextBlock()),
        ('line_chart', LineChartBlock()),
    ])

Ваш шаблон:

<script>
    const title = "{{ title }}";
    const x = "{{ x }}";
    const y = "{{ y }}";
    const data = "{{ data }}";

    makeChartWizardry = () => {
       doStuff;
    }

</script>

<section>
    <div id="chart"></div>
</section>
Другие вопросы по тегам