(managing_the_reference_index)= # 참조 인덱스 관리 Wagtail은 객체가 저장될 때마다 객체 간의 참조를 기록하는 참조 인덱스를 유지 관리합니다. 이 인덱스를 통해 Wagtail은 StreamField 및 리치 텍스트 필드를 포함하여 페이지 내 이미지, 문서 및 스니펫 사용량을 효율적으로 보고할 수 있습니다. ## 구성 기본적으로 인덱스는 Wagtail 관리자 내에서 관리되는 객체 간의 참조를 저장합니다. 구체적으로: - 모든 페이지 유형 - 이미지 - 문서 - [스니펫](snippets)으로 등록된 모델 - [`ModelViewSet`](../extending/generic_views)으로 등록된 모델 참조 인덱스는 추가 구성이 필요하지 않습니다. 그러나 인덱스에서 모델을 추가하거나 제거해야 하는 경우가 있습니다. (registering_a_model_for_indexing)= ### 인덱싱을 위한 모델 등록 모델은 모델이 정의된 앱의 `apps.py` 에 코드를 추가하여 참조 인덱싱을 위해 등록할 수 있습니다. ```python from django.apps import AppConfig class SprocketAppConfig(AppConfig): ... def ready(self): from wagtail.models.reference_index import ReferenceIndex from .models import SprocketController ReferenceIndex.register_model(SprocketController) ``` ### 모델 및 필드 인덱싱 방지 `wagtail_reference_index_ignore` 속성을 사용하여 특정 모델 또는 모델 필드의 인덱싱을 방지할 수 있습니다. - 모델의 모든 필드 인덱싱을 방지하려는 모델 클래스 내에서 `wagtail_reference_index_ignore` 속성을 `True` 로 설정합니다. 또는 - 해당 필드 또는 관련 모델 필드가 인덱싱되는 것을 방지하기 위해 모델 필드 내에서 `wagtail_reference_index_ignore` 속성을 `True` 로 설정합니다. ```python class CentralPage(Page): ... reference = models.ForeignKey( "doc", on_delete=models.SET_NULL, related_name="page_ref", ) reference.wagtail_reference_index_ignore = True ... ``` ## 유지 관리 인덱스는 `rebuild_references_index` 관리 명령으로 재구축할 수 있습니다. 이렇게 하면 참조 테이블이 다시 채워지고 참조 수가 정확하게 표시됩니다. 이는 Wagtail 외부에서 모델을 조작하거나 업그레이드 후에 수행해야 합니다. 인덱스 요약은 `show_references_index` 관리 명령으로 표시할 수 있습니다. 이는 각 모델 유형에 대해 인덱싱된 객체 수를 보여주며, 인덱스 자체를 재구축하지 않고도 어떤 모델이 인덱싱되고 있는지 식별하는 데 유용할 수 있습니다.