kopia lustrzana https://github.com/wagtail/wagtail
Add section on min_num / max_num / block_counts
rodzic
241e06e9af
commit
30f6a66107
|
|
@ -311,6 +311,60 @@ When reading back the content of a StreamField, the value of a StreamBlock is a
|
||||||
</article>
|
</article>
|
||||||
|
|
||||||
|
|
||||||
|
Limiting block counts
|
||||||
|
~~~~~~~~~~~~~~~~~~~~~
|
||||||
|
|
||||||
|
By default, a StreamField can contain an unlimited number of blocks. The ``min_num`` and ``max_num`` options on ``StreamField`` or ``StreamBlock`` allow you to set a minimum or maximum number of blocks:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
body = StreamField([
|
||||||
|
('heading', blocks.CharBlock(form_classname="full title")),
|
||||||
|
('paragraph', blocks.RichTextBlock()),
|
||||||
|
('image', ImageChooserBlock()),
|
||||||
|
], min_num=2, max_num=5)
|
||||||
|
|
||||||
|
Or equivalently:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
class CommonContentBlock(blocks.StreamBlock):
|
||||||
|
heading = blocks.CharBlock(form_classname="full title")
|
||||||
|
paragraph = blocks.RichTextBlock()
|
||||||
|
image = ImageChooserBlock()
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
min_num = 2
|
||||||
|
max_num = 5
|
||||||
|
|
||||||
|
|
||||||
|
The ``block_counts`` option can be used to set a minimum or maximum count for specific block types. This accepts a dict, mapping block names to a dict containing either or both of ``min_num`` and ``max_num``. For example, to permit between 1 and 3 'heading' blocks:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
body = StreamField([
|
||||||
|
('heading', blocks.CharBlock(form_classname="full title")),
|
||||||
|
('paragraph', blocks.RichTextBlock()),
|
||||||
|
('image', ImageChooserBlock()),
|
||||||
|
], block_counts={
|
||||||
|
'heading': {'min_num': 1, 'max_num': 3},
|
||||||
|
})
|
||||||
|
|
||||||
|
Or equivalently:
|
||||||
|
|
||||||
|
.. code-block:: python
|
||||||
|
|
||||||
|
class CommonContentBlock(blocks.StreamBlock):
|
||||||
|
heading = blocks.CharBlock(form_classname="full title")
|
||||||
|
paragraph = blocks.RichTextBlock()
|
||||||
|
image = ImageChooserBlock()
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
block_counts = {
|
||||||
|
'heading': {'min_num': 1, 'max_num': 3},
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.. _streamfield_per_block_templates:
|
.. _streamfield_per_block_templates:
|
||||||
|
|
||||||
Per-block templates
|
Per-block templates
|
||||||
|
|
|
||||||
Ładowanie…
Reference in New Issue