Sì, si può sicuramente aggiungere uno Streamfield ad un frammento. Funziona come se lo si usasse su una sottoclasse di Wagtail Page. Ecco un esempio del suo utilizzo:
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')]
materiale extra che non hai chiesto: Streamfield è un campo modello di Django, quindi funziona lo stesso su qualsiasi modello si definisce su. In realtà, Streamfield salva solo come una stringa JSON. L'unica cosa che lo rende diverso sono i blocchi. I blocchi definiti in quel primo parametro di Streamfield stanno in realtà solo definendo le opzioni disponibili che Streamfield può utilizzare per generare contenuti. I blocchi stessi non hanno alcun rapporto con SQL per le operazioni CRUD, vengono utilizzati solo per manipolare i dati salvati per lo Streamfield.
Spero che questo aiuti.
Impressionante, grazie KS per la risposta. Ora che so che è accettabile, (quando sono di nuovo davanti a un computer) pubblicherò il mio codice che non è lontano dal tuo. Genera la fine della barra nera, ma c'è un errore JS quando si fa clic su un blocco. Forse qualcuno può aiutarti. È una bella installazione di vaniglia, e funzionano bene in altri posti quindi è un po 'sconcertante. –