Wagtail StreamField не отображается в шаблоне после вставки новой строки - PullRequest
0 голосов
/ 06 декабря 2018

У меня есть CMS на основе трясогузки, и я недавно переписал ее более разумным способом.Я написал скрипт для переноса старого контента в эту новую версию, которая основана на wagtail 2.3 (старая версия была на wagtail 1.11).Я написал сценарий миграции (для восстановления различных внешних ключей и т. Д.), И весь контент заполнен и, кажется, работает, за исключением визуализации StreamFields.

К сожалению, когда я переключаюсь обратно на свою тестовую базу данных для v2, это работает нормально (контент отображается) - я искал свои базы данных на предмет различий между двумя строками (в wagtailcore_page или blog_blogpostpage) и могу 'не вижу никакой разницы.Очевидно, что что-то упускается из-за того, что трясогузка выбирает содержимое StreamField. Может ли кто-нибудь объяснить мне, что я мог упустить при миграции?Большое спасибо !!

models.py

class BlogPostPage(Page):  # Individual blog post
    template = 'blog/post_page.html'
    parent_page_types = ['blog.BlogIndexPage']
    show_in_menus_default = True
    author = models.ForeignKey(
        User, on_delete=models.PROTECT, default=1,
    )
    description = models.CharField(
        max_length=300, blank=False,
        help_text="Add a brief (max 300 characters) description for this blog post."
    )

    date = models.DateField(
        "Post date",
        help_text="This date may be displayed on the blog post. "
                  "It is not used to schedule posts to go live at a later date."
    )
    body = StreamField([
        ('heading', blocks.CharBlock(classname="full title")),
        ('paragraph', blocks.RichTextBlock()),
        ('embed', EmbedBlock()),
        ('image', ImageChooserBlock(classname='img-responsive')),
        ('code', CodeBlock(label='Code')),
        ('table', TableBlock(label='Table'))
    ], help_text="Create content by adding new blocks.")

запись в таблице blog_blogpostpage:

"page_ptr_id","description","date","body","author_id"
23,"Now including Blog!","2018-12-06","[{""type"": ""paragraph"", ""value"": ""<p>Since the first release we&#x27;ve made some improvements and upgrades...</p>"", ""id"": ""25fe32be-2090-42dd-8e3e-4df53c494227""}]",15

igration_script.sh

INSERT INTO "public"."wagtailcore_page"("path","depth","numchild","title","slug","live","has_unpublished_changes","url_path","seo_title","show_in_menus","search_description","go_live_at","expire_at","expired","content_type_id","owner_id","locked","latest_revision_created_at","first_published_at","live_revision_id","last_published_at","draft_title")
        VALUES
        (E'00010002000O0001',4,0,E'Release: version 2',E'release-version-2',TRUE,FALSE,E'/home/blog/release-version-2/',E'',TRUE,E'',NULL,NULL,FALSE,6,15,FALSE,E'2018-12-06 16:58:10.897348+08',E'2018-12-06 16:58:10.926032+08',NULL,E'2018-12-06 16:58:10.926032+08',E'Release: version 2');

    INSERT INTO "public"."blog_blogpostpage"("page_ptr_id","description","date","body","author_id")
        VALUES
        ((SELECT id FROM wagtailcore_page WHERE path='00010002000O0001'),E'Now including Blog!',E'2018-12-06',E'[{"type": "paragraph", "value": "<p>Since the first release we&#x27;ve made some improvements and upgrades...</p>", "id": "25fe32be-2090-42dd-8e3e-4df53c494227"}]',15);

template.html

{% include_block page.body %}

^^^ Для поля page.body ничего не отображается, но отображается описание, дата и автор.

1 Ответ

0 голосов
/ 09 декабря 2018

Ваш перенос данных создал недопустимый JSON:

[{""type"": ""paragraph"", ""value"": ""<p>S ...

Должен иметь одинарные кавычки:

[{"type": "paragraph", "value": "<p>S ...
...