StreamField 블록 참조¶
이 문서는 StreamField에서 사용하기 위해 Wagtail이 제공하는 블록 유형과 이를 새 블록 유형으로 결합하는 방법을 자세히 설명합니다.
참고
블록 정의는 모델 필드와 유사하게 보이지만 동일하지는 않습니다. 블록은 StreamField 내에서만 유효합니다. 모델 필드 대신 사용하면 작동하지 않습니다.
- class wagtail.fields.StreamField(blocks, blank=False, min_num=None, max_num=None, block_counts=None, collapsed=False)¶
다양한 유형의 콘텐츠 블록 시퀀스로 장문 콘텐츠를 나타내기 위한 모델 필드입니다. 혼합 콘텐츠에 StreamField 사용하는 방법 을 참조하십시오.
- 매개변수:
blocks –
(name, block_definition)튜플 목록 또는StreamBlock인스턴스로 전달되는 블록 유형 목록입니다.blank – false(기본값)인 경우 필드가 유효한 것으로 간주되려면 하나 이상의 블록이 제공되어야 합니다.
min_num – 스트림이 가져야 하는 최소 하위 블록 수입니다.
max_num – 스트림이 가질 수 있는 최대 하위 블록 수입니다.
block_counts – 블록 이름을 (선택 사항)
min_num및max_num필드가 있는 사전으로 매핑하는 사전으로 각 블록 유형의 최소 및 최대 수를 지정합니다.collapsed – true인 경우 모든 블록은 처음에 축소됩니다.
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편집기에서 이 블록 유형에 표시할 아이콘 이름입니다. 자세한 내용은 아이콘 개요를 참조하십시오.
template프런트엔드에서 이 블록을 렌더링하는 데 사용될 Django 템플릿의 경로입니다. 템플릿 렌더링을 참조하십시오.
group이 블록을 분류하는 데 사용되는 그룹입니다. 동일한 그룹 이름을 가진 모든 블록은 그룹 이름을 제목으로 사용하여 편집기 인터페이스에 함께 표시됩니다.
StreamField 블록은 미리 보기를 가질 수 있습니다. 미리 보기 패널에 표시됩니다. 이 기능을 수용하기 위해 모든 블록 정의는 다음 옵션도 허용합니다.
preview_value미리 보기를 렌더링하는 데 사용될 플레이스홀더 값입니다. 자세한 내용은
get_preview_value()를 참조하십시오.
preview_template미리 보기를 렌더링하는 데 사용되는 템플릿입니다. 자세한 내용은
get_preview_template()을 참조하십시오.
description편집자에게 표시될 블록 설명입니다. 자세한 내용은
get_description()을 참조하십시오.
모든 블록 정의에는 재정의할 수 있는 다음 메서드 및 속성이 있습니다.
- class wagtail.blocks.Block(*args, **kwargs)¶
- get_context(value, parent_context=None)¶
Return a dict of context variables (derived from the block
valueand combined with theparent_context) to be used as the template context when rendering this value through a template. See the usage example for more details.
- get_template(value=None, context=None)¶
Return the template to use for rendering the block if specified. This method allows for dynamic templates based on the block instance and a given
value. See the usage example for more details.
- get_preview_value()¶
Return the placeholder value that will be used for rendering the block’s preview. By default, the value is the
preview_valuefrom the block’s options if provided, otherwise thedefaultis used as fallback. This method can be overridden to provide a dynamic preview value, such as from the database.
- get_preview_context(value, parent_context=None)¶
Return a dict of context variables to be used as the template context when rendering the block’s preview. The
valueargument is the value returned byget_preview_value(). Theparent_contextargument contains the following variables:request: The current request object.block_def: The block instance.block_class: The block class.bound_block: ABoundBlockinstance representing the block and its value.
If the global preview template is used, the block will be rendered as the main content using
{% include_block %}, which in turn usesget_context(). As a result, the context returned by this method will be available as theparent_contextforget_context()when the preview is rendered.
- get_preview_template(value, context=None)¶
Return the template to use for rendering the block’s preview. The
valueargument is the value returned byget_preview_value(). Thecontextargument contains the variables listed for theparent_contextargument ofget_preview_context()above (and not the context returned by that method itself).Note that the preview template is used to render a complete HTML page of the preview, not just an HTML fragment for the block. The method returns the
preview_templateattribute from the block’s options if provided, and falls back to the global preview template otherwise.If the global preview template is used, the block will be rendered as the main content using
{% include_block %}, which in turn usesget_template().
- get_description()¶
Return the description of the block to be shown to editors as part of the preview. For field block types, it will fall back to
help_textif not provided.
- is_previewable¶
Determine whether the block is previewable in the block picker. By default, it automatically detects when a custom template is used or the the global preview template is overridden and a preview value is provided. If the block is previewable by other means, override this property to return
True. To turn off previews for the block, set it toFalse.
필드 블록 유형¶
- class wagtail.blocks.FieldBlock(*args, **kwargs)¶
기반 클래스:
BlockA block that wraps a Django form field
모든 StreamField 필드 블록 유형의 부모 클래스입니다.
- class wagtail.blocks.CharBlock(*args, **kwargs)¶
기반 클래스:
FieldBlock단일 줄 텍스트 입력입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
max_length – 필드의 최대 허용 길이입니다.
min_length – 필드의 최소 허용 길이입니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
search_index – false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다.
validators – 필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
- class wagtail.blocks.TextBlock(*args, **kwargs)¶
기반 클래스:
FieldBlock여러 줄 텍스트 입력입니다.
CharBlock과 마찬가지로 표준 인수 외에 다음 키워드 인수가 허용됩니다.- 매개변수:
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
max_length – 필드의 최대 허용 길이입니다.
min_length – 필드의 최소 허용 길이입니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
search_index – false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다.
rows – 텍스트 영역에 표시할 행 수입니다(기본값 1).
validators – 필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
- class wagtail.blocks.EmailBlock(*args, **kwargs)¶
기반 클래스:
FieldBlock값이 유효한 이메일 주소인지 유효성을 검사하는 단일 줄 이메일 입력입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
validators – 필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
- class wagtail.blocks.IntegerBlock(*args, **kwargs)¶
기반 클래스:
FieldBlock값이 유효한 정수인지 유효성을 검사하는 단일 줄 정수 입력입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
max_value – 필드의 최대 허용 숫자 값입니다.
min_value – 필드의 최소 허용 숫자 값입니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
validators – 필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
- class wagtail.blocks.FloatBlock(*args, **kwargs)¶
기반 클래스:
FieldBlock값이 유효한 부동 소수점 숫자인지 유효성을 검사하는 단일 줄 부동 소수점 입력입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
max_value – 필드의 최대 허용 숫자 값입니다.
min_value – 필드의 최소 허용 숫자 값입니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
validators – 필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
- class wagtail.blocks.DecimalBlock(*args, **kwargs)¶
기반 클래스:
FieldBlock값이 유효한 십진수인지 유효성을 검사하는 단일 줄 십진수 입력입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
max_value – 필드의 최대 허용 숫자 값입니다.
min_value – 필드의 최소 허용 숫자 값입니다.
max_digits – 숫자에 허용되는 최대 자릿수입니다. 이 숫자는
decimal_places보다 크거나 같아야 합니다.decimal_places – 숫자에 저장할 소수 자릿수입니다.
validators – 필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
- class wagtail.blocks.RegexBlock(*args, **kwargs)¶
기반 클래스:
FieldBlock정규식에 대해 문자열의 유효성을 검사하는 단일 줄 텍스트 입력입니다. 유효성 검사에 사용되는 정규식은 첫 번째 인수 또는
regex키워드 인수로 제공되어야 합니다.blocks.RegexBlock(regex=r'^[0-9]{3}$', error_messages={ 'invalid': "유효한 라이브러리 카드 번호가 아닙니다." })
표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
regex – 유효성 검사할 정규식입니다.
error_messages – 오류 메시지 사전으로,
required(빈 값에 표시되는 메시지) 또는invalid(일치하지 않는 값에 표시되는 메시지) 중 하나 또는 둘 다를 포함합니다.required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
max_length – 필드의 최대 허용 길이입니다.
min_length – 필드의 최소 허용 길이입니다.
validators – 필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
- class wagtail.blocks.URLBlock(*args, **kwargs)¶
기반 클래스:
FieldBlock문자열이 유효한 URL인지 유효성을 검사하는 단일 줄 텍스트 입력입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
max_length – 필드의 최대 허용 길이입니다.
min_length – 필드의 최소 허용 길이입니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
validators – 필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
- class wagtail.blocks.BooleanBlock(*args, **kwargs)¶
기반 클래스:
FieldBlock체크박스입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
required – true(기본값)인 경우 진행하려면 체크박스를 선택해야 합니다. Django의
BooleanField와 마찬가지로 선택하거나 선택 해제할 수 있는 체크박스는required=False로 명시적으로 표시해야 합니다.help_text – 필드와 함께 표시할 도움말 텍스트입니다.
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
- class wagtail.blocks.DateBlock(*args, **kwargs)¶
기반 클래스:
FieldBlock날짜 선택기입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
format – 날짜 형식입니다.
DATE_INPUT_FORMATS설정에 나열된 인식되는 형식 중 하나여야 합니다. 지정되지 않으면 Wagtail은WAGTAIL_DATE_FORMAT설정을 사용하고"%Y-%m-%d"로 대체됩니다.required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
validators – 필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
- class wagtail.blocks.TimeBlock(*args, **kwargs)¶
기반 클래스:
FieldBlock시간 선택기입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
format – 시간 형식입니다.
TIME_INPUT_FORMATS설정에 나열된 인식되는 형식 중 하나여야 합니다. 지정되지 않으면 Wagtail은WAGTAIL_TIME_FORMAT설정을 사용하고"%H:%M"로 대체됩니다.required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
validators – 필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
- class wagtail.blocks.DateTimeBlock(*args, **kwargs)¶
기반 클래스:
FieldBlock결합된 날짜/시간 선택기입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
format – 날짜/시간 형식입니다.
DATETIME_INPUT_FORMATS설정에 나열된 인식되는 형식 중 하나여야 합니다. 지정되지 않으면 Wagtail은WAGTAIL_DATETIME_FORMAT설정을 사용하고"%Y-%m-%d %H:%M"로 대체됩니다.required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
validators – 필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
- class wagtail.blocks.RichTextBlock(*args, **kwargs)¶
기반 클래스:
FieldBlock링크, 굵게/기울임꼴 등을 포함하여 서식 있는 텍스트를 만들기 위한 WYSIWYG 편집기입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
editor – 사용할 리치 텍스트 편집기입니다(WAGTAILADMIN_RICH_TEXT_EDITORS 참조).
features – 허용되는 기능 집합을 지정합니다(서식 있는 텍스트 필드의 기능 제한 참조).
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
max_length – 필드의 최대 허용 길이입니다. 텍스트만 계산됩니다. 리치 텍스트 서식, 포함된 콘텐츠 및 단락/줄 바꿈은 제한에 포함되지 않습니다.
min_length – 필드의 최소 허용 길이입니다. 텍스트만 계산됩니다. 리치 텍스트 서식, 포함된 콘텐츠 및 단락/줄 바꿈은 제한에 포함되지 않습니다.
search_index – false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
validators – 필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
- class wagtail.blocks.RawHTMLBlock(*args, **kwargs)¶
기반 클래스:
FieldBlock페이지 출력에서 이스케이프되지 않고 렌더링될 원시 HTML을 입력하기 위한 텍스트 영역입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
max_length – 필드의 최대 허용 길이입니다.
min_length – 필드의 최소 허용 길이입니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
validators – 필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
경고
이 블록이 사용 중일 때 편집자가 페이지에 악성 스크립트를 삽입하는 것을 막을 수 없습니다. 여기에는 다른 관리자가 페이지를 볼 때 편집자가 관리자 권한을 획득할 수 있는 스크립트도 포함됩니다. 편집자를 완전히 신뢰하지 않는 한 이 블록을 사용하지 마십시오.
- class wagtail.blocks.BlockQuoteBlock(*args, **kwargs)¶
기반 클래스:
TextBlock페이지 출력에서 HTML <blockquote> 태그 쌍으로 래핑될 내용이 있는 텍스트 필드입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
max_length – 필드의 최대 허용 길이입니다.
min_length – 필드의 최소 허용 길이입니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
validators – 필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
- class wagtail.blocks.ChoiceBlock(*args, **kwargs)¶
- show-inheritance:
선택 목록에서 하나의 항목을 선택하기 위한 드롭다운 선택 상자입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- param choices:
Django의
choices매개변수가 모델 필드에 허용하는 모든 형식의 선택 목록 또는 이러한 목록을 반환하는 호출 가능 객체입니다.- param required:
true(기본값)인 경우 필드를 비워 둘 수 없습니다.
- param help_text:
필드와 함께 표시할 도움말 텍스트입니다.
- param search_index:
false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다.
- param widget:
필드를 렌더링할 폼 위젯입니다(Django 위젯 참조).
- param validators:
필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
- param form_classname:
페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
ChoiceBlock은 동일한 선택 목록을 가진 재사용 가능한 블록을 생성하기 위해 서브클래스화할 수도 있습니다. 예를 들어 다음과 같은 블록 정의:blocks.ChoiceBlock(choices=[ ('tea', '차'), ('coffee', '커피'), ], icon='cup')
ChoiceBlock의 서브클래스로 다시 작성할 수 있습니다.
class DrinksChoiceBlock(blocks.ChoiceBlock): choices = [ ('tea', '차'), ('coffee', '커피'), ] class Meta: icon = 'cup'
StreamField정의는 전체ChoiceBlock정의 대신DrinksChoiceBlock()을 참조할 수 있습니다. 이는choices가 호출 가능 객체가 아닌 고정 목록인 경우에만 작동합니다.
- class wagtail.blocks.MultipleChoiceBlock(*args, **kwargs)¶
기반 클래스:
BaseChoiceBlock선택 목록에서 여러 항목을 선택하기 위한 선택 상자입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
choices – Django의
choices매개변수가 모델 필드에 허용하는 모든 형식의 선택 목록 또는 이러한 목록을 반환하는 호출 가능 객체입니다.required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
search_index – false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다.
widget – 필드를 렌더링할 폼 위젯입니다(Django 위젯 참조).
validators – 필드에 대한 유효성 검사 함수 목록입니다(Django 유효성 검사기 참조).
form_classname – 페이지 편집 폼에 렌더링될 때 폼 필드의
class속성에 추가할 값입니다.
- class wagtail.blocks.PageChooserBlock(*args, **kwargs)¶
기반 클래스:
ChooserBlockWagtail의 페이지 브라우저를 사용하여 페이지 객체를 선택하기 위한 컨트롤입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
page_type – 선택 항목을 하나 이상의 특정 페이지 유형으로 제한합니다. 기본적으로 모든 페이지 유형을 선택할 수 있습니다. 페이지 모델 클래스, 모델 이름(문자열), 또는 이들의 목록 또는 튜플로 지정할 수 있습니다.
can_choose_root – 기본값은 false입니다. true인 경우 편집기가 트리의 루트를 페이지로 선택할 수 있습니다. 일반적으로 트리의 루트는 사용 가능한 페이지가 아니므로 바람직하지 않지만, 일부 특수한 경우에는 적절할 수 있습니다. 예를 들어, 관련 기사 피드를 제공하는 블록은 PageChooserBlock을 사용하여 사이트 기사를 가져올 하위 섹션을 선택할 수 있으며, 루트는 ‘모든 곳’에 해당합니다.
- class wagtail.documents.blocks.DocumentChooserBlock(*args, **kwargs)¶
기반 클래스:
BaseDocumentChooserBlock편집자가 기존 문서 객체를 선택하거나 새 문서를 업로드할 수 있도록 하는 컨트롤입니다. 다음 추가 키워드 인수가 허용됩니다.
- 매개변수:
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
- class wagtail.images.blocks.ImageBlock(*args, **kwargs)¶
기반 클래스:
StructBlockAn usage of ImageChooserBlock with support for alt text. For backward compatibility, this block overrides necessary methods to change the StructValue to be an Image model instance, making it compatible in places where ImageChooserBlock was used.
편집자가 기존 이미지를 선택하거나 새 이미지를 업로드할 수 있도록 하는 접근성 중심 컨트롤입니다. 대체 텍스트를 추가하고 이미지가 순전히 장식적인지 여부를 나타내는 기능이 있으며, 이미지를 업로드하는 Wagtail 권장 방식입니다. 다음 추가 키워드 인수가 허용됩니다.
- 매개변수:
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
ImageBlock은ImageChooserBlock과의 하위 호환성을 통합합니다.ImageChooserBlock으로 처음 정의된 블록은ImageBlock으로 직접 대체할 수 있습니다.ImageChooserBlock으로 생성된 기존 데이터는 필드가 다시 저장될 때 자동으로 처리되고ImageBlock의 데이터 형식으로 변경됩니다.
- class wagtail.images.blocks.ImageChooserBlock(*args, **kwargs)¶
기반 클래스:
ChooserBlock편집자가 기존 이미지를 선택하거나 새 이미지를 업로드할 수 있도록 하는 컨트롤입니다. 다음 추가 키워드 인수가 허용됩니다.
- 매개변수:
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
- class wagtail.snippets.blocks.SnippetChooserBlock(*args, **kwargs)¶
기반 클래스:
ChooserBlock편집자가 스니펫 객체를 선택할 수 있도록 하는 컨트롤입니다. 하나의 위치 인수를 필요로 합니다. 선택할 스니펫 클래스입니다. 다음 추가 키워드 인수가 허용됩니다.
- 매개변수:
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
- class wagtail.embeds.blocks.EmbedBlock(*args, **kwargs)¶
기반 클래스:
URLBlock페이지에 포함된 미디어로 표시될 미디어 항목(예: YouTube 동영상)의 URL을 편집자가 입력하기 위한 필드입니다. 표준 인수 외에 다음 키워드 인수가 허용됩니다.
- 매개변수:
required – true(기본값)인 경우 필드를 비워 둘 수 없습니다.
max_width – 임베드의 최대 너비(픽셀)입니다. 임베드를 요청할 때 공급자에게 전달됩니다.
max_height – 임베드의 최대 높이(픽셀)입니다. 임베드를 요청할 때 공급자에게 전달됩니다.
max_length – 필드의 최대 허용 길이입니다.
min_length – 필드의 최소 허용 길이입니다.
help_text – 필드와 함께 표시할 도움말 텍스트입니다.
구조 블록 유형¶
- class wagtail.blocks.StaticBlock(*args, **kwargs)¶
기반 클래스:
BlockA block that just ‘exists’ and has no fields.
필드가 없는 블록으로, 렌더링 시 템플릿에 특정 값을 전달하지 않습니다. 이는 편집자가 항상 동일하거나 페이지 편짓기 내에서 구성할 필요가 없는 콘텐츠(예: 주소, 타사 서비스의 임베드 코드 또는 템플릿이 템플릿 태그를 사용하는 경우 더 복잡한 코드 조각)를 삽입할 수 있어야 하는 경우에 유용할 수 있습니다. 다음 추가 키워드 인수가 허용됩니다.
- 매개변수:
admin_text – 이 블록이 사용될 때 관리자에 표시할 텍스트 문자열입니다. 기본적으로 일부 기본 텍스트(전달하는 경우
label키워드 인수를 포함함)가 편집기 인터페이스에 표시되어 블록이 비어 있지 않게 보이지만,admin_text를 전달하여 사용자 지정할 수 있습니다.
blocks.StaticBlock( admin_text='최신 게시물: 구성 필요 없음.', # 또는 admin_text=mark_safe('<b>최신 게시물</b>: 구성 필요 없음.'), template='latest_posts.html')
StaticBlock은 동일한 구성으로 재사용 가능한 블록을 생성하기 위해 서브클래스화할 수도 있습니다.class LatestPostsStaticBlock(blocks.StaticBlock): class Meta: icon = 'user' label = '최신 게시물' admin_text = '{label}: 다른 곳에서 구성됨'.format(label=label) template = 'latest_posts.html'
- class wagtail.blocks.StructBlock(*args, **kwargs)¶
기반 클래스:
BaseStructBlock함께 표시될 고정된 하위 블록 그룹으로 구성된 블록입니다. 첫 번째 인수로
(name, block_definition)튜플 목록을 사용합니다.body = StreamField([ # ... ('person', blocks.StructBlock([ ('first_name', blocks.CharBlock()), ('surname', blocks.CharBlock()), ('photo', ImageBlock(required=False)), ('biography', blocks.RichTextBlock()), ], icon='user')), ])
또는 StructBlock은 재사용 가능한 하위 블록 세트를 지정하기 위해 서브클래스화할 수 있습니다.
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()을 정의합니다.body = StreamField([ ('heading', blocks.CharBlock(form_classname="title")), ('paragraph', blocks.RichTextBlock()), ('image', ImageBlock()), ('person', PersonBlock()), ])
다음 추가 옵션은 키워드 인수 또는 Meta 클래스 속성으로 사용할 수 있습니다.
- 매개변수:
form_classname – 편집 인터페이스에 표시될 때 이 블록의 루트 요소에 설정할 HTML
class속성입니다. 기본값은struct-block입니다. 관리자 인터페이스에는 이 클래스에 정의된 CSS 스타일이 있으므로 재정의할 때 이 값에struct-block을 포함하는 것이 좋습니다. StructBlock 에 대한 사용자 정의 편집 인터페이스 을 참조하십시오.form_template – 이 블록의 폼을 렌더링하는 데 사용할 Django 템플릿의 경로입니다. StructBlock 에 대한 사용자 정의 편집 인터페이스 을 참조하십시오.
value_class – 이 블록에 대해 반환된 값의 유형으로 사용할
wagtail.blocks.StructValue의 서브클래스입니다. StructBlock 값에 대한 추가 메서드 및 속성 을 참조하십시오.search_index – false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다.
label_format – 편집 인터페이스에서 블록이 축소될 때 표시되는 레이블을 결정합니다. 기본적으로 StructBlock의 첫 번째 하위 블록 값이 표시되지만, 중괄호 안에 블록 이름이 포함된 문자열을 설정하여 사용자 지정할 수 있습니다. 예를 들어
label_format = "{first_name} {surname}의 프로필"
- class wagtail.blocks.ListBlock(*args, **kwargs)¶
기반 클래스:
Block모두 동일한 유형의 여러 하위 블록으로 구성된 블록입니다. 편집기는 무제한의 하위 블록을 추가하고 순서를 변경하고 삭제할 수 있습니다. 하위 블록의 정의를 첫 번째 인수로 사용합니다.
body = StreamField([ # ... ('ingredients_list', blocks.ListBlock(blocks.CharBlock(label="재료"))), ])
구조 유형을 포함하여 모든 블록 유형이 하위 블록 유형으로 유효합니다.
body = StreamField([ # ... ('ingredients_list', blocks.ListBlock(blocks.StructBlock([ ('ingredient', blocks.CharBlock()), ('amount', blocks.CharBlock(required=False)), ]))), ])
다음 추가 옵션은 키워드 인수 또는 Meta 클래스 속성으로 사용할 수 있습니다.
- 매개변수:
form_classname – 편집 인터페이스에 표시될 때 이 블록의 루트 요소에 설정할 HTML
class속성입니다.min_num – 목록이 가져야 하는 최소 하위 블록 수입니다.
max_num – 목록이 가질 수 있는 최대 하위 블록 수입니다.
search_index – false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다.
collapsed – true인 경우 모든 하위 블록은 처음에 축소됩니다.
- class wagtail.blocks.StreamBlock(*args, **kwargs)¶
기반 클래스:
BaseStreamBlock다양한 유형의 하위 블록 시퀀스로 구성된 블록으로, 자유롭게 혼합하고 재정렬할 수 있습니다. StreamField 자체의 전체 메커니즘으로 사용되지만, 중첩되거나 다른 구조 블록 유형 내에서 사용될 수도 있습니다. 첫 번째 인수로
(name, block_definition)튜플 목록을 사용합니다.body = StreamField([ # ... ('carousel', blocks.StreamBlock( [ ('image', ImageBlock()), ('quotation', blocks.StructBlock([ ('text', blocks.TextBlock()), ('author', blocks.CharBlock()), ])), ('video', EmbedBlock()), ], icon='cogs' )), ])
StructBlock과 마찬가지로 하위 블록 목록은 StreamBlock의 서브클래스로도 제공될 수 있습니다.
class CarouselBlock(blocks.StreamBlock): image = ImageBlock() quotation = blocks.StructBlock([ ('text', blocks.TextBlock()), ('author', blocks.CharBlock()), ]) video = EmbedBlock() class Meta: icon='cogs'
StreamField는 블록 유형 목록 대신StreamBlock인스턴스를 매개변수로 허용하므로, 정의를 반복하지 않고도 공통 블록 유형 세트를 재사용할 수 있습니다.class HomePage(Page): carousel = StreamField( CarouselBlock(max_num=10, block_counts={'video': {'max_num': 2}}), )
StreamBlock은 키워드 인수 또는Meta속성으로 다음 추가 옵션을 허용합니다.- 매개변수:
required – true(기본값)인 경우 하나 이상의 하위 블록이 제공되어야 합니다. StreamField의 최상위 블록으로
StreamBlock을 사용하는 경우 이 값은 무시됩니다. 이 경우 StreamField의blank속성이 대신 적용됩니다.min_num – 스트림이 가져야 하는 최소 하위 블록 수입니다.
max_num – 스트림이 가질 수 있는 최대 하위 블록 수입니다.
search_index – false(기본값 true)인 경우 이 블록의 내용은 검색을 위해 색인화되지 않습니다.
block_counts – 블록 이름을 (선택 사항)
min_num및max_num필드가 있는 사전으로 매핑하는 사전으로 각 블록 유형의 최소 및 최대 수를 지정합니다.collapsed – true인 경우 모든 하위 블록은 처음에 축소됩니다.
form_classname – 편집 인터페이스에 표시될 때 이 블록의 루트 요소에 설정할 HTML
class속성입니다.
body = StreamField([ # ... ('event_promotions', blocks.StreamBlock([ ('hashtag', blocks.CharBlock()), ('post_date', blocks.DateBlock()), ], form_classname='event-promotions')), ])
class EventPromotionsBlock(blocks.StreamBlock): hashtag = blocks.CharBlock() post_date = blocks.DateBlock() class Meta: form_classname = 'event-promotions'