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