簡體   English   中英

在 Wagtail 的片段中使用 StreamField

[英]Use of StreamField in Snippets on Wagtail

我正在嘗試在我的 Wagtail 網站上構建一些結構化片段。 我查看了文檔,但在這一點上什么也沒看到(如果我錯過了,請原諒我)。

是否可以在 Snippet 中使用StreamField 或者,僅在頁面上

是的,您絕對可以將 Streamfield 添加到片段中。 它的工作原理與您在 Wagtail Page 子類上使用它一樣。 這是它的使用示例:

from wagtail.core.fields import StreamField
from wagtail.wagtailsnippets.models import register_snippet
from wagtail.wagtailadmin.edit_handlers import StreamFieldPanel

@register_snippet
class Contact(models.Model):
    contact_info = StreamField([
        ('email', MyBlocks.ContactEmail()),
        ('phone', MyBlocks.ContactPhone()),
        ('address', MyBlocks.ContactAddress()),
    ])

    panels = [StreamFieldPanel('contact_info')]

您沒有要求的額外內容: Streamfield 是一個 Django 模型字段,因此它在您定義它的任何模型上都相同。 實際上,Streamfield 只是保存為 JSON 字符串。 唯一使它與眾不同的是塊。 在 Streamfield 的第一個參數中定義的塊實際上只是定義了 Streamfield 可用於生成內容的可用選項。 這些塊本身與 CRUD 操作的 SQL 無關,它們僅用於操作為 Streamfield 保存的數據。

希望有幫助。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM