Я пытаюсь использовать ту же поисковую систему, что и Django на странице администратора, чтобы показывать результаты в моих пользовательских представлениях.Использование поисковой системы Django Admin в моих собственных представлениях
Я нашел this website, который рекомендует использовать следующий код:
from django.db.models import Q
from django.db.models.query import QuerySet
import operator
def django_admin_keyword_search(model, keywords, base_qs=None):
"""Search according to fields defined in Admin's search_fields"""
if not keywords:
return []
fields = model._meta.admin.search_fields
qs = QuerySet(model)
for keyword in keywords:
or_queries = [Q(**{'%s__icontains' % field: keyword}) for field in fields]
if base_qs is None:
other_qs = QuerySet(model)
else:
other_qs = base_qs
if qs._select_related:
other_qs = other_qs.select_related()
other_qs = other_qs.filter(reduce(operator.or_, or_queries))
qs = qs & other_qs
return qs
def do_keyword_search(model, query, base_qs=None):
return django_admin_keyword_search(model, query.split(' '),
base_qs=base_qs)
, но я не в состоянии работать, что, не получая Attribute Error (объект «Параметры» не имеет атрибута «администратора») на этот кусок кода: fields = model._meta.admin.search_fields
EDIT: Что я делаю неправильно с помощью администратора поисковой системы по умолчанию?
Это другой способ использовать поисковую систему администратора по умолчанию?
Обратите внимание на дату на эту ссылку: ** 7 лет назад **. Это хорошо до Django 1.0, и администратор был совсем другим. –