Как использовать диаграмму с Wagtail CMS - PullRequest
0 голосов
/ 06 ноября 2018

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

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

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

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

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

1 Ответ

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

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

Так что block.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'

Your 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>
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...