Встроенное создание фрагмента в блоке потокового поля (Wagtail 2.3+) - PullRequest
3 голосов
/ 01 апреля 2019

Допустим, для Wagtail настроены следующие модели:

@register_snippet
class MySnippet(models.Model):
    name = models.CharField(max_length=200, null=True)
    panels = [FieldPanel('name'),]
    def __str__(self):
        return self.name
    class Meta:
        ordering = ['name',]

class MyPage(Page):
    body = StreamField([
        ('mysnippet', SnippetChooserBlock(required=False, label='MySnippet', target_model='MySnippet')),
    ], blank=True, help_text='')

    content_panels = Page.content_panels + [
        StreamFieldPanel('body', heading='Stuff to add'),
    ]

Мой клиент будет создавать много MySnippet элементов по мере их поступления. Им будет очень неловко перейти к другому представлению в своей CMS, создать MySnippet, а затем вернуться в свой главный редактор MyPage и выбрать его.

Q1 Есть простой способ добавить блок SnippetChooseOrInlineCreate(), чтобы клиенты могли добавлять новые MySnippet s при создании MyPage s?

Q2 Если не существует простого способа, как бы вы порекомендовали подходить к этому?

...