чего я хочу
Я создам одно веб-приложение с помощью wegtail, например приложение для распространения новостей. Я создал класс на Blocks.py, унаследовал его от models.py и закодировал html, чтобы их отображать. Этот класс означает ввод информации о статье, такой как название и URL-адрес, и их перечисление. хотя я закодировал html, и он был распознан, однако он не отображается на дисплее.
сообщения об ошибках
У меня нет сообщений об ошибках. Пожалуйста, посмотрите это фото, я закодировал {{self}} и покажу их. Мы видим заголовок статьи и дополнительную информацию.
Подробно
Дерево проекта
это состав моего проекта. дерево проекта
кодировка
#streams/blocks.py
#python file
#block model to input article info
class ArticleIndexBlock(blocks.StructBlock):
articles = blocks.ListBlock(
blocks.StructBlock(
[
("article_image", ImageChooserBlock(required=True)),
("article_title", blocks.CharBlock(required=True, max_length=40)),
("article_text", blocks.TextBlock(required=True, max_length=200)),
("article_url", blocks.URLBlock(required=False)),
]
)
)
class Meta:
template = "streams/article_index_block.html"
icon = "edit"
label = "Article"
#articles/models.py
#python file
#models inherited from Streams/blocks.py
class ArticleIndexPage(Page):
template = "articles/article_index.html"
content = StreamField(
[
("article_index_block", blocks.ArticleIndexBlock()),
],
null=True,
blank=True,
)
content_panels = Page.content_panels + [
StreamFieldPanel("content"),
]
def get_context(self, request, *args, **kwargs):
context = super().get_context(request, *args, **kwargs)
context["posts"] = ArticleIndexPage.objects.live().public()
return context
class Meta:
verbose_name = "Article index Page"
verbose_name_plural = "Article index Pages"
<!--article_index.html-->
{% extends 'base.html' %}
{% load wagtailcore_tags %}
{% block content %}
<h1>{{ self.title }}</h1>
{% for block in page.content %}
{% include_block block%}
{% endfor %}
{% endblock content %}
<!--article_index_block.html-->
<div class="container">
<h3>{{ self.article_title }}</h3>
</div>
</hr>