사용자 지정 문서 모델¶
대체 Document 모델을 사용하여 사용자 지정 동작 및 추가 필드를 추가할 수 있습니다.
이를 위해 프로젝트에서 다음 단계를 완료해야 합니다.
wagtail.documents.models.AbstractDocument를 상속하는 새 문서 모델을 생성합니다. 여기에 추가 필드를 추가합니다.WAGTAILDOCS_DOCUMENT_MODEL이 새 모델을 가리키도록 설정합니다.
다음은 예시입니다.
# models.py
from django.db import models
from wagtail.documents.models import Document, AbstractDocument
class CustomDocument(AbstractDocument):
# 사용자 지정 필드 예시:
source = models.CharField(
max_length=255,
blank=True,
null=True
)
admin_form_fields = Document.admin_form_fields + (
# 폼에 표시되도록 모든 사용자 지정 필드 이름을 여기에 추가합니다.
'source',
)
그런 다음 설정 모듈에서:
# app_label을 사용자 지정 모델을 배치한 앱으로 교체해야 합니다.
WAGTAILDOCS_DOCUMENT_MODEL = 'app_label.CustomDocument'
참고
내장 문서 모델에서 마이그레이션:
기존 사이트를 사용자 지정 문서 모델로 변경할 때, 문서는 새 모델로 자동으로 복사되지 않습니다. 이전 문서를 새 모델로 복사하려면 데이터 마이그레이션 을 사용하여 수동으로 수행해야 합니다.
내장 문서 모델을 참조하는 템플릿은 이전과 같이 계속 작동하지만, 새 문서를 보려면 업데이트해야 합니다.
문서 모델 참조¶
- wagtail.documents.get_document_model()¶
Get the document model from the
WAGTAILDOCS_DOCUMENT_MODELsetting. Defaults to the standardwagtail.documents.models.Documentmodel if no custom model is defined.
- wagtail.documents.get_document_model_string()¶
Get the dotted
app.Modelname for the document model as a string. Useful for developers making Wagtail plugins that need to refer to the document model, such as in foreign keys, but the model itself is not required.