В области поиска администратора отображаются несколько элементов, таких как страницы, изображения, документы и т. Д. c.
Однако эта страница ищет только page
модели, когда вы нажимаете другие модели (например, изображения). ), он перенесет вас на страницу поиска изображений, а также добавит параметр запроса q
на основе любого существующего поиска.
Так что просто для пояснения, эта страница только ищет страницы и ищет другие элементы , он перенесет вас в администрацию трясогузки.
Надеюсь, что нижеприведенный ответ на ваши конкретные c вопросы сценария.
1. Измените область поиска или результаты поиска admin/pages
- Это можно сделать, создав собственный вид, но это не просто
- Вы можете увидеть здесь функцию
search
. https://github.com/wagtail/wagtail/blob/master/wagtail/admin/views/pages.py#L958 - Вы можете перенаправить любой URL-адрес, изменив свой urls.py, чтобы перенаправить страницу
admin/pages/search/
в свое пользовательское представление. - Однако вам, вероятно, понадобится переписать (скопировать / вставить) большую часть представления, поскольку оно является функцией, а не представлением класса
2. Добавление пользовательских областей поиска
3. Удаление области поиска
- Простейший способ скрыть один из элементов в списке «другие поиски» будет с CSS изменением
- Следующим лучшим способом будет настроить шаблон
wagtail/admin/templates/wagtailadmin/shared/search_other.html
с переопределением, а затем отфильтровать результаты - Я не знаю, как удалить хуки или зарегистрированные хуки без каких-либо мартышек, но хуки собираются и сохраняются как
admin_search_areas
you Вы можете увидеть код здесь - https://github.com/wagtail/wagtail/blob/master/wagtail/admin/search.py#L102
Пример кода для использования register_admin_search_area
hook
Это в основном использует пример документации, но дает вам грубый Идея о том, как go к определенному c ModelAdmin
индексному представлению, используя эту функцию. Примечание: это не ищет ВСЕ модели ModelAdmin, только одна указанная c одна.
Хотя вы всегда можете создать пользовательскую страницу поиска для поиска по всем моделям.
from wagtail.core import hooks
from wagtail.admin.search import SearchArea
# ...
@hooks.register('register_admin_search_area')
def register_model_admin_search_area():
# PeopleModelAdmin is a ModelAdmin also in the same hooks file
index_url = PeopleModelAdmin().url_helper.index_url
return SearchArea(
'People ModelAdmin',
index_url,
classnames='icon icon-user',
order=10000
)
@hooks.register('register_admin_search_area')
def register_snippets_search_area():
url = reverse('wagtailsnippets:list', args=('base', 'people'))
return SearchArea(
'People Snippets',
url,
classnames='icon icon-user',
order=10000
)