사용자 지정 문서 모델

대체 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_MODEL setting. Defaults to the standard wagtail.documents.models.Document model if no custom model is defined.

wagtail.documents.get_document_model_string()

Get the dotted app.Model name 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.