5
我想在我的W site網站上構建一些結構化片段。我查看了documentation,但在這一點上沒有看到任何東西(如果我錯過了,請原諒我)。在W Sn片段中使用StreamField
是否可以在Snippet中使用StreamField
?或者,只在頁面上
我想在我的W site網站上構建一些結構化片段。我查看了documentation,但在這一點上沒有看到任何東西(如果我錯過了,請原諒我)。在W Sn片段中使用StreamField
是否可以在Snippet中使用StreamField
?或者,只在頁面上
是的,你可以肯定地添加一個Streamfield到一個片段。它的工作方式與在W Page頁面子類中使用它相同。下面是一個例子的它的使用:
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保存的數據。
希望有所幫助。
太棒了,謝謝KS的答案。現在,我知道這是可以接受的,(當我回到電腦前時),我會發布我的代碼,與您的代碼相距不遠。它會生成黑色條,但單擊塊時會出現JS錯誤。也許有人可以幫忙。這是一個非常漂亮的香草裝置,在其他地方它們工作得很好,所以這有點令人費解。 –