angrybeanie_wagtail/env/lib/python3.12/site-packages/wagtail/search/checks.py
2025-07-25 21:32:16 +10:00

32 lines
1.2 KiB
Python

from django.core.checks import Warning, register
@register("search")
def page_search_fields_check(app_configs, **kwargs):
"""Checks each page model with search_fields to core fields are included"""
from wagtail.models import Page, get_page_models
page_models = get_page_models()
errors = []
for cls in page_models:
# Don't check models where indexing has been explicitly disabled
if not cls.search_fields:
continue
# Only checks an initial subset of fields as only need to check some are missing to show the warning
if not all(field in cls.search_fields for field in Page.search_fields[:10]):
errors.append(
Warning(
"Core Page fields missing in `search_fields`",
hint=" ".join(
[
"Ensure that {} extends the Page model search fields",
"`search_fields = Page.search_fields + [...]`",
]
).format(cls.__name__),
obj=cls,
id="wagtailsearch.W001",
)
)
return errors