(streamfield_block_reference)= # StreamField 블록 참조 이 문서는 [StreamField](streamfield_topic)에서 사용하기 위해 Wagtail이 제공하는 블록 유형과 이를 새 블록 유형으로 결합하는 방법을 자세히 설명합니다. ```{note} 블록 정의는 모델 필드와 유사하게 보이지만 동일하지는 않습니다. 블록은 StreamField 내에서만 유효합니다. 모델 필드 대신 사용하면 작동하지 않습니다. ``` ```{eval-rst} .. class:: wagtail.fields.StreamField(blocks, blank=False, min_num=None, max_num=None, block_counts=None, collapsed=False) 다양한 유형의 콘텐츠 블록 시퀀스로 장문 콘텐츠를 나타내기 위한 모델 필드입니다. :ref:`streamfield_topic` 을 참조하십시오. :param blocks: ``(name, block_definition)`` 튜플 목록 또는 ``StreamBlock`` 인스턴스로 전달되는 블록 유형 목록입니다. :param blank: false(기본값)인 경우 필드가 유효한 것으로 간주되려면 하나 이상의 블록이 제공되어야 합니다. :param min_num: 스트림이 가져야 하는 최소 하위 블록 수입니다. :param max_num: 스트림이 가질 수 있는 최대 하위 블록 수입니다. :param block_counts: 블록 이름을 (선택 사항) ``min_num`` 및 ``max_num`` 필드가 있는 사전으로 매핑하는 사전으로 각 블록 유형의 최소 및 최대 수를 지정합니다. :param collapsed: true인 경우 모든 블록은 처음에 축소됩니다. ``` ```python body = StreamField([ ('heading', blocks.CharBlock(form_classname="title")), ('paragraph', blocks.RichTextBlock()), ('image', ImageBlock()), ], block_counts={ 'heading': {'min_num': 1}, 'image': {'max_num': 5}, }) ``` ## 블록 옵션 및 메서드 모든 블록 정의는 다음 선택적 키워드 인수 또는 `Meta` 클래스 속성을 허용합니다. - `default` - 새 '빈' 블록이 받아야 하는 기본값입니다. - `label` - 이 블록을 참조할 때 편집기 인터페이스에 표시할 레이블입니다. 블록 이름의 예쁜 버전으로 기본 설정됩니다(또는 `ListBlock` 과 같이 이름이 할당되지 않은 컨텍스트에서는 빈 문자열). - `icon` - 편집기에서 이 블록 유형에 표시할 아이콘 이름입니다. 자세한 내용은 [아이콘 개요](icons)를 참조하십시오. - `template` - 프런트엔드에서 이 블록을 렌더링하는 데 사용될 Django 템플릿의 경로입니다. [템플릿 렌더링](streamfield_template_rendering)을 참조하십시오. - `group` - 이 블록을 분류하는 데 사용되는 그룹입니다. 동일한 그룹 이름을 가진 모든 블록은 그룹 이름을 제목으로 사용하여 편집기 인터페이스에 함께 표시됩니다. (block_preview_arguments)= [StreamField 블록은 미리 보기를 가질 수 있습니다](configuring_block_previews). 미리 보기 패널에 표시됩니다. 이 기능을 수용하기 위해 모든 블록 정의는 다음 옵션도 허용합니다. - `preview_value` - 미리 보기를 렌더링하는 데 사용될 플레이스홀더 값입니다. 자세한 내용은 {meth}`~wagtail.blocks.Block.get_preview_value` 를 참조하십시오. - `preview_template` - 미리 보기를 렌더링하는 데 사용되는 템플릿입니다. 자세한 내용은 {meth}`~wagtail.blocks.Block.get_preview_template` 을 참조하십시오. - `description` - 편집자에게 표시될 블록 설명입니다. 자세한 내용은 {meth}`~wagtail.blocks.Block.get_description` 을 참조하십시오. 모든 블록 정의에는 재정의할 수 있는 다음 메서드 및 속성이 있습니다. ```{eval-rst} .. autoclass:: wagtail.blocks.Block .. automethod:: wagtail.blocks.Block.get_context .. automethod:: wagtail.blocks.Block.get_template .. automethod:: wagtail.blocks.Block.get_preview_value .. automethod:: wagtail.blocks.Block.get_preview_context .. automethod:: wagtail.blocks.Block.get_preview_template .. automethod:: wagtail.blocks.Block.get_description .. autoattribute:: wagtail.blocks.Block.is_previewable ``` (field_block_types)= ## 필드 블록 유형 ```{eval-rst} .. autoclass:: wagtail.blocks.FieldBlock :show-inheritance: 모든 StreamField 필드 블록 유형의 부모 클래스입니다. .. autoclass:: wagtail.blocks.CharBlock :show-inheritance: 단일 줄 텍스트 입력입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param max_length: 필드의 최대 허용 길이입니다. :param min_length: 필드의 최소 허용 길이입니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param search_index: false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다. :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. autoclass:: wagtail.blocks.TextBlock :show-inheritance: 여러 줄 텍스트 입력입니다. ``CharBlock`` 과 마찬가지로 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param max_length: 필드의 최대 허용 길이입니다. :param min_length: 필드의 최소 허용 길이입니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param search_index: false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다. :param rows: 텍스트 영역에 표시할 행 수입니다(기본값 1). :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. autoclass:: wagtail.blocks.EmailBlock :show-inheritance: 값이 유효한 이메일 주소인지 유효성을 검사하는 단일 줄 이메일 입력입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. autoclass:: wagtail.blocks.IntegerBlock :show-inheritance: 값이 유효한 정수인지 유효성을 검사하는 단일 줄 정수 입력입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param max_value: 필드의 최대 허용 숫자 값입니다. :param min_value: 필드의 최소 허용 숫자 값입니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. autoclass:: wagtail.blocks.FloatBlock :show-inheritance: 값이 유효한 부동 소수점 숫자인지 유효성을 검사하는 단일 줄 부동 소수점 입력입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param max_value: 필드의 최대 허용 숫자 값입니다. :param min_value: 필드의 최소 허용 숫자 값입니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. autoclass:: wagtail.blocks.DecimalBlock :show-inheritance: 값이 유효한 십진수인지 유효성을 검사하는 단일 줄 십진수 입력입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param max_value: 필드의 최대 허용 숫자 값입니다. :param min_value: 필드의 최소 허용 숫자 값입니다. :param max_digits: 숫자에 허용되는 최대 자릿수입니다. 이 숫자는 ``decimal_places`` 보다 크거나 같아야 합니다. :param decimal_places: 숫자에 저장할 소수 자릿수입니다. :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. autoclass:: wagtail.blocks.RegexBlock :show-inheritance: 정규식에 대해 문자열의 유효성을 검사하는 단일 줄 텍스트 입력입니다. 유효성 검사에 사용되는 정규식은 첫 번째 인수 또는 ``regex`` 키워드 인수로 제공되어야 합니다. .. code-block:: python blocks.RegexBlock(regex=r'^[0-9]{3}$', error_messages={ 'invalid': "유효한 라이브러리 카드 번호가 아닙니다." }) 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param regex: 유효성 검사할 정규식입니다. :param error_messages: 오류 메시지 사전으로, ``required`` (빈 값에 표시되는 메시지) 또는 ``invalid`` (일치하지 않는 값에 표시되는 메시지) 중 하나 또는 둘 다를 포함합니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param max_length: 필드의 최대 허용 길이입니다. :param min_length: 필드의 최소 허용 길이입니다. :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. autoclass:: wagtail.blocks.URLBlock :show-inheritance: 문자열이 유효한 URL인지 유효성을 검사하는 단일 줄 텍스트 입력입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param max_length: 필드의 최대 허용 길이입니다. :param min_length: 필드의 최소 허용 길이입니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. autoclass:: wagtail.blocks.BooleanBlock :show-inheritance: 체크박스입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 진행하려면 체크박스를 선택해야 합니다. Django의 ``BooleanField`` 와 마찬가지로 선택하거나 선택 해제할 수 있는 체크박스는 ``required=False`` 로 명시적으로 표시해야 합니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. autoclass:: wagtail.blocks.DateBlock :show-inheritance: 날짜 선택기입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param format: 날짜 형식입니다. :std:setting:`django:DATE_INPUT_FORMATS` 설정에 나열된 인식되는 형식 중 하나여야 합니다. 지정되지 않으면 Wagtail은 ``WAGTAIL_DATE_FORMAT`` 설정을 사용하고 ``"%Y-%m-%d"`` 로 대체됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. autoclass:: wagtail.blocks.TimeBlock :show-inheritance: 시간 선택기입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param format: 시간 형식입니다. :std:setting:`django:TIME_INPUT_FORMATS` 설정에 나열된 인식되는 형식 중 하나여야 합니다. 지정되지 않으면 Wagtail은 ``WAGTAIL_TIME_FORMAT`` 설정을 사용하고 ``"%H:%M"`` 로 대체됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. autoclass:: wagtail.blocks.DateTimeBlock :show-inheritance: 결합된 날짜/시간 선택기입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param format: 날짜/시간 형식입니다. :std:setting:`django:DATETIME_INPUT_FORMATS` 설정에 나열된 인식되는 형식 중 하나여야 합니다. 지정되지 않으면 Wagtail은 ``WAGTAIL_DATETIME_FORMAT`` 설정을 사용하고 ``"%Y-%m-%d %H:%M"`` 로 대체됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. autoclass:: wagtail.blocks.RichTextBlock :show-inheritance: 링크, 굵게/기울임꼴 등을 포함하여 서식 있는 텍스트를 만들기 위한 WYSIWYG 편집기입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param editor: 사용할 리치 텍스트 편집기입니다(:ref:`wagtailadmin_rich_text_editors` 참조). :param features: 허용되는 기능 집합을 지정합니다(:ref:`rich_text_features` 참조). :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param max_length: 필드의 최대 허용 길이입니다. 텍스트만 계산됩니다. 리치 텍스트 서식, 포함된 콘텐츠 및 단락/줄 바꿈은 제한에 포함되지 않습니다. :param min_length: 필드의 최소 허용 길이입니다. 텍스트만 계산됩니다. 리치 텍스트 서식, 포함된 콘텐츠 및 단락/줄 바꿈은 제한에 포함되지 않습니다. :param search_index: false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. autoclass:: wagtail.blocks.RawHTMLBlock :show-inheritance: 페이지 출력에서 이스케이프되지 않고 렌더링될 원시 HTML을 입력하기 위한 텍스트 영역입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param max_length: 필드의 최대 허용 길이입니다. :param min_length: 필드의 최소 허용 길이입니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. WARNING:: 이 블록이 사용 중일 때 편집자가 페이지에 악성 스크립트를 삽입하는 것을 막을 수 없습니다. 여기에는 다른 관리자가 페이지를 볼 때 편집자가 관리자 권한을 획득할 수 있는 스크립트도 포함됩니다. 편집자를 완전히 신뢰하지 않는 한 이 블록을 사용하지 마십시오. .. autoclass:: wagtail.blocks.BlockQuoteBlock :show-inheritance: 페이지 출력에서 HTML `
` 태그 쌍으로 래핑될 내용이 있는 텍스트 필드입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param max_length: 필드의 최대 허용 길이입니다. :param min_length: 필드의 최소 허용 길이입니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. autoclass:: wagtail.blocks.ChoiceBlock :show-inheritance: 선택 목록에서 하나의 항목을 선택하기 위한 드롭다운 선택 상자입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param choices: Django의 :attr:`~django.db.models.Field.choices` 매개변수가 모델 필드에 허용하는 모든 형식의 선택 목록 또는 이러한 목록을 반환하는 호출 가능 객체입니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param search_index: false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다. :param widget: 필드를 렌더링할 폼 위젯입니다(:doc:`Django 위젯 ` 참조). :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. ``ChoiceBlock`` 은 동일한 선택 목록을 가진 재사용 가능한 블록을 생성하기 위해 서브클래스화할 수도 있습니다. 예를 들어 다음과 같은 블록 정의: .. code-block:: python blocks.ChoiceBlock(choices=[ ('tea', '차'), ('coffee', '커피'), ], icon='cup') ChoiceBlock의 서브클래스로 다시 작성할 수 있습니다. .. code-block:: python class DrinksChoiceBlock(blocks.ChoiceBlock): choices = [ ('tea', '차'), ('coffee', '커피'), ] class Meta: icon = 'cup' ``StreamField`` 정의는 전체 ``ChoiceBlock`` 정의 대신 ``DrinksChoiceBlock()`` 을 참조할 수 있습니다. 이는 ``choices`` 가 호출 가능 객체가 아닌 고정 목록인 경우에만 작동합니다. ``` (streamfield_multiplechoiceblock)= ```{eval-rst} .. autoclass:: wagtail.blocks.MultipleChoiceBlock :show-inheritance: 선택 목록에서 여러 항목을 선택하기 위한 선택 상자입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param choices: Django의 :attr:`~django.db.models.Field.choices` 매개변수가 모델 필드에 허용하는 모든 형식의 선택 목록 또는 이러한 목록을 반환하는 호출 가능 객체입니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. :param search_index: false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다. :param widget: 필드를 렌더링할 폼 위젯입니다(:doc:`Django 위젯 ` 참조). :param validators: 필드에 대한 유효성 검사 함수 목록입니다(:doc:`Django 유효성 검사기 ` 참조). :param form_classname: 페이지 편집 폼에 렌더링될 때 폼 필드의 ``class`` 속성에 추가할 값입니다. .. autoclass:: wagtail.blocks.PageChooserBlock :show-inheritance: Wagtail의 페이지 브라우저를 사용하여 페이지 객체를 선택하기 위한 컨트롤입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param page_type: 선택 항목을 하나 이상의 특정 페이지 유형으로 제한합니다. 기본적으로 모든 페이지 유형을 선택할 수 있습니다. 페이지 모델 클래스, 모델 이름(문자열), 또는 이들의 목록 또는 튜플로 지정할 수 있습니다. :param can_choose_root: 기본값은 false입니다. true인 경우 편집기가 트리의 루트를 페이지로 선택할 수 있습니다. 일반적으로 트리의 루트는 사용 가능한 페이지가 아니므로 바람직하지 않지만, 일부 특수한 경우에는 적절할 수 있습니다. 예를 들어, 관련 기사 피드를 제공하는 블록은 PageChooserBlock을 사용하여 사이트 기사를 가져올 하위 섹션을 선택할 수 있으며, 루트는 '모든 곳'에 해당합니다. .. autoclass:: wagtail.documents.blocks.DocumentChooserBlock :show-inheritance: 편집자가 기존 문서 객체를 선택하거나 새 문서를 업로드할 수 있도록 하는 컨트롤입니다. 다음 추가 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. ``` (streamfield_imageblock)= ```{eval-rst} .. autoclass:: wagtail.images.blocks.ImageBlock :show-inheritance: 편집자가 기존 이미지를 선택하거나 새 이미지를 업로드할 수 있도록 하는 접근성 중심 컨트롤입니다. 대체 텍스트를 추가하고 이미지가 순전히 장식적인지 여부를 나타내는 기능이 있으며, 이미지를 업로드하는 Wagtail 권장 방식입니다. 다음 추가 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. ``ImageBlock`` 은 ``ImageChooserBlock`` 과의 하위 호환성을 통합합니다. ``ImageChooserBlock`` 으로 처음 정의된 블록은 ``ImageBlock`` 으로 직접 대체할 수 있습니다. ``ImageChooserBlock`` 으로 생성된 기존 데이터는 필드가 다시 저장될 때 자동으로 처리되고 ``ImageBlock`` 의 데이터 형식으로 변경됩니다. ``` ```{eval-rst} .. autoclass:: wagtail.images.blocks.ImageChooserBlock :show-inheritance: 편집자가 기존 이미지를 선택하거나 새 이미지를 업로드할 수 있도록 하는 컨트롤입니다. 다음 추가 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. .. autoclass:: wagtail.snippets.blocks.SnippetChooserBlock :show-inheritance: 편집자가 스니펫 객체를 선택할 수 있도록 하는 컨트롤입니다. 하나의 위치 인수를 필요로 합니다. 선택할 스니펫 클래스입니다. 다음 추가 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. .. autoclass:: wagtail.embeds.blocks.EmbedBlock :show-inheritance: 페이지에 포함된 미디어로 표시될 미디어 항목(예: YouTube 동영상)의 URL을 편집자가 입력하기 위한 필드입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다. :param required: true(기본값)인 경우 필드를 비워 둘 수 없습니다. :param max_width: 임베드의 최대 너비(픽셀)입니다. 임베드를 요청할 때 공급자에게 전달됩니다. :param max_height: 임베드의 최대 높이(픽셀)입니다. 임베드를 요청할 때 공급자에게 전달됩니다. :param max_length: 필드의 최대 허용 길이입니다. :param min_length: 필드의 최소 허용 길이입니다. :param help_text: 필드와 함께 표시할 도움말 텍스트입니다. ``` (streamfield_staticblock)= ## 구조 블록 유형 ```{eval-rst} .. autoclass:: wagtail.blocks.StaticBlock :show-inheritance: 필드가 없는 블록으로, 렌더링 시 템플릿에 특정 값을 전달하지 않습니다. 이는 편집자가 항상 동일하거나 페이지 편짓기 내에서 구성할 필요가 없는 콘텐츠(예: 주소, 타사 서비스의 임베드 코드 또는 템플릿이 템플릿 태그를 사용하는 경우 더 복잡한 코드 조각)를 삽입할 수 있어야 하는 경우에 유용할 수 있습니다. 다음 추가 키워드 인수가 허용됩니다. :param admin_text: 이 블록이 사용될 때 관리자에 표시할 텍스트 문자열입니다. 기본적으로 일부 기본 텍스트(전달하는 경우 ``label`` 키워드 인수를 포함함)가 편집기 인터페이스에 표시되어 블록이 비어 있지 않게 보이지만, ``admin_text`` 를 전달하여 사용자 지정할 수 있습니다. .. code-block:: python blocks.StaticBlock( admin_text='최신 게시물: 구성 필요 없음.', # 또는 admin_text=mark_safe('최신 게시물: 구성 필요 없음.'), template='latest_posts.html') ``StaticBlock`` 은 동일한 구성으로 재사용 가능한 블록을 생성하기 위해 서브클래스화할 수도 있습니다. .. code-block:: python class LatestPostsStaticBlock(blocks.StaticBlock): class Meta: icon = 'user' label = '최신 게시물' admin_text = '{label}: 다른 곳에서 구성됨'.format(label=label) template = 'latest_posts.html' .. autoclass:: wagtail.blocks.StructBlock :show-inheritance: 함께 표시될 고정된 하위 블록 그룹으로 구성된 블록입니다. 첫 번째 인수로 ``(name, block_definition)`` 튜플 목록을 사용합니다. .. code-block:: python body = StreamField([ # ... ('person', blocks.StructBlock([ ('first_name', blocks.CharBlock()), ('surname', blocks.CharBlock()), ('photo', ImageBlock(required=False)), ('biography', blocks.RichTextBlock()), ], icon='user')), ]) 또는 StructBlock은 재사용 가능한 하위 블록 세트를 지정하기 위해 서브클래스화할 수 있습니다. .. code-block:: python class PersonBlock(blocks.StructBlock): first_name = blocks.CharBlock() surname = blocks.CharBlock() photo = ImageBlock(required=False) biography = blocks.RichTextBlock() class Meta: icon = 'user' ``Meta`` 클래스는 ``default``, ``label``, ``icon`` 및 ``template`` 속성을 지원하며, 블록의 생성자에 전달될 때와 동일한 의미를 가집니다. 이는 StreamField 정의에서 사용할 블록 유형으로 ``PersonBlock()`` 을 정의합니다. .. code-block:: python body = StreamField([ ('heading', blocks.CharBlock(form_classname="title")), ('paragraph', blocks.RichTextBlock()), ('image', ImageBlock()), ('person', PersonBlock()), ]) 다음 추가 옵션은 키워드 인수 또는 Meta 클래스 속성으로 사용할 수 있습니다. :param form_classname: 편집 인터페이스에 표시될 때 이 블록의 루트 요소에 설정할 HTML ``class`` 속성입니다. 기본값은 ``struct-block`` 입니다. 관리자 인터페이스에는 이 클래스에 정의된 CSS 스타일이 있으므로 재정의할 때 이 값에 ``struct-block`` 을 포함하는 것이 좋습니다. :ref:`custom_editing_interfaces_for_structblock` 을 참조하십시오. :param form_template: 이 블록의 폼을 렌더링하는 데 사용할 Django 템플릿의 경로입니다. :ref:`custom_editing_interfaces_for_structblock` 을 참조하십시오. :param value_class: 이 블록에 대해 반환된 값의 유형으로 사용할 ``wagtail.blocks.StructValue`` 의 서브클래스입니다. :ref:`custom_value_class_for_structblock` 을 참조하십시오. :param search_index: false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다. :param label_format: 편집 인터페이스에서 블록이 축소될 때 표시되는 레이블을 결정합니다. 기본적으로 StructBlock의 첫 번째 하위 블록 값이 표시되지만, 중괄호 안에 블록 이름이 포함된 문자열을 설정하여 사용자 지정할 수 있습니다. 예를 들어 ``label_format = "{first_name} {surname}의 프로필"`` .. autoclass:: wagtail.blocks.ListBlock :show-inheritance: 모두 동일한 유형의 여러 하위 블록으로 구성된 블록입니다. 편집기는 무제한의 하위 블록을 추가하고 순서를 변경하고 삭제할 수 있습니다. 하위 블록의 정의를 첫 번째 인수로 사용합니다. .. code-block:: python body = StreamField([ # ... ('ingredients_list', blocks.ListBlock(blocks.CharBlock(label="재료"))), ]) 구조 유형을 포함하여 모든 블록 유형이 하위 블록 유형으로 유효합니다. .. code-block:: python body = StreamField([ # ... ('ingredients_list', blocks.ListBlock(blocks.StructBlock([ ('ingredient', blocks.CharBlock()), ('amount', blocks.CharBlock(required=False)), ]))), ]) 다음 추가 옵션은 키워드 인수 또는 Meta 클래스 속성으로 사용할 수 있습니다. :param form_classname: 편집 인터페이스에 표시될 때 이 블록의 루트 요소에 설정할 HTML ``class`` 속성입니다. :param min_num: 목록이 가져야 하는 최소 하위 블록 수입니다. :param max_num: 목록이 가질 수 있는 최대 하위 블록 수입니다. :param search_index: false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다. :param collapsed: true인 경우 모든 하위 블록은 처음에 축소됩니다. .. autoclass:: wagtail.blocks.StreamBlock :show-inheritance: 다양한 유형의 하위 블록 시퀀스로 구성된 블록으로, 자유롭게 혼합하고 재정렬할 수 있습니다. StreamField 자체의 전체 메커니즘으로 사용되지만, 중첩되거나 다른 구조 블록 유형 내에서 사용될 수도 있습니다. 첫 번째 인수로 ``(name, block_definition)`` 튜플 목록을 사용합니다. .. code-block:: python body = StreamField([ # ... ('carousel', blocks.StreamBlock( [ ('image', ImageBlock()), ('quotation', blocks.StructBlock([ ('text', blocks.TextBlock()), ('author', blocks.CharBlock()), ])), ('video', EmbedBlock()), ], icon='cogs' )), ]) StructBlock과 마찬가지로 하위 블록 목록은 StreamBlock의 서브클래스로도 제공될 수 있습니다. .. code-block:: python class CarouselBlock(blocks.StreamBlock): image = ImageBlock() quotation = blocks.StructBlock([ ('text', blocks.TextBlock()), ('author', blocks.CharBlock()), ]) video = EmbedBlock() class Meta: icon='cogs' ``StreamField`` 는 블록 유형 목록 대신 ``StreamBlock`` 인스턴스를 매개변수로 허용하므로, 정의를 반복하지 않고도 공통 블록 유형 세트를 재사용할 수 있습니다. .. code-block:: python class HomePage(Page): carousel = StreamField( CarouselBlock(max_num=10, block_counts={'video': {'max_num': 2}}), ) ``StreamBlock`` 은 키워드 인수 또는 ``Meta`` 속성으로 다음 추가 옵션을 허용합니다. :param required: true(기본값)인 경우 하나 이상의 하위 블록이 제공되어야 합니다. StreamField의 최상위 블록으로 ``StreamBlock`` 을 사용하는 경우 이 값은 무시됩니다. 이 경우 StreamField의 ``blank`` 속성이 대신 적용됩니다. :param min_num: 스트림이 가져야 하는 최소 하위 블록 수입니다. :param max_num: 스트림이 가질 수 있는 최대 하위 블록 수입니다. :param search_index: false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다. :param block_counts: 블록 이름을 (선택 사항) ``min_num`` 및 ``max_num`` 필드가 있는 사전으로 매핑하는 사전으로 각 블록 유형의 최소 및 최대 수를 지정합니다. :param collapsed: true인 경우 모든 하위 블록은 처음에 축소됩니다. :param form_classname: 편집 인터페이스에 표시될 때 이 블록의 루트 요소에 설정할 HTML ``class`` 속성입니다. .. code-block:: python :emphasize-lines: 6 body = StreamField([ # ... ('event_promotions', blocks.StreamBlock([ ('hashtag', blocks.CharBlock()), ('post_date', blocks.DateBlock()), ], form_classname='event-promotions')), ]) .. code-block:: python :emphasize-lines: 6 class EventPromotionsBlock(blocks.StreamBlock): hashtag = blocks.CharBlock() post_date = blocks.DateBlock() class Meta: form_classname = 'event-promotions' ```