Django 当循环遍历Wagtail段落流字段项时,是否限制为单个块?

Django 当循环遍历Wagtail段落流字段项时,是否限制为单个块?,django,wagtail,Django,Wagtail,我在streamfields中添加了4个段落块。在段落块上循环时,它会在单独的标记中显示所有4个段落。我怎么能把它限制在第一段呢? 我尝试使用此解决方案: {% if forloop.counter0 == 0 %} <p>{{block.value}}</p> {% endif %} blog_page.html {page.body%中的块的% {%if block.block_type=='段落'%} {{block.value.0}} {%endfor%} 在

我在streamfields中添加了4个段落块。在段落块上循环时,它会在单独的标记中显示所有4个段落。我怎么能把它限制在第一段呢? 我尝试使用此解决方案:

{% if forloop.counter0 == 0 %}
 <p>{{block.value}}</p>
{% endif %}
blog_page.html

{page.body%中的块的%
{%if block.block_type=='段落'%}
{{block.value.0}}

{%endfor%}
在模型内部的Python代码中执行此类逻辑通常比将其硬塞进Django模板符号更容易:

class BlogPage(Page):
    body = StreamField([
        ('paragraph', blocks.RichTextBlock()),
        ('image', ImageChooserBlock()),
    ])

    content_panels = Page.content_panels + [
        StreamFieldPanel('body')
    ]

    def first_paragraph(self):
        for block in self.body:
            if block.block_type == 'paragraph':
                return block.value

然后在模板中使用
{{page.first_paragration}

在模型内部的Python代码中执行此类逻辑通常比试图将其硬塞进Django模板符号更容易:

class BlogPage(Page):
    body = StreamField([
        ('paragraph', blocks.RichTextBlock()),
        ('image', ImageChooserBlock()),
    ])

    content_panels = Page.content_panels + [
        StreamFieldPanel('body')
    ]

    def first_paragraph(self):
        for block in self.body:
            if block.block_type == 'paragraph':
                return block.value

然后在模板中使用
{{page.first_paration}}

难以置信!我不知道你能做到。因此,您可以在类中创建任何自定义函数,并使用Django模板调用它。谢谢。难以置信!我不知道你能做到。因此,您可以在类中创建任何自定义函数,并使用Django模板调用它。谢谢。