1

我正在寻找创建一个项目的流场,每个项目都有一个自定义 ID。我创建了一个“ItemBlock”并添加了一个使用 uuid4 填充的“unique_identifier”属性。问题是每个项目都有相同的 uuid。有没有办法为每个 ItemBlock 生成不同的 uuid?

class ItemBlock(blocks.StructBlock):
        
    unique_identifier = blocks.CharBlock(default=uuid.uuid4())
    item_name = blocks.CharBlock()
    body = blocks.RichTextBlock()


class CategoryBlock(blocks.StructBlock):
    title = blocks.CharBlock()

class ListPage(Page):
    subtitle = models.CharField(max_length=50)
    checklist = StreamField([('category', CategoryBlock()), ('checklist_item', ItemBlock())])

    
    content_panels = Page.content_panels + [
        FieldPanel('subtitle'),
        StreamFieldPanel('checklist'),
    ]
4

1 回答 1

1

Wagtail 块已经有 UUID:

https://github.com/wagtail/wagtail/blob/master/wagtail/core/blocks/stream_block.py#L452

您可以在模板中使用your_block.id.

这对你有帮助吗?

于 2020-06-30T13:29:31.477 回答