Хорошие практики для гибкой страницы поиска - Django - PullRequest
0 голосов
/ 08 июля 2010

Мне просто интересно, есть ли какой-нибудь пример, который я мог бы взять от других по этой теме.

У меня есть страница в Django, которая использует фильтры для выполнения поиска.

В настоящий момент я делаю простую проверку параметров GET и добавляю .filter () к соответствующему набору запросов соответственно:

if color:
  query.filter(color=color)

Это выглядит как уродливый способ, иЯ немного застрял, удивляясь, как я могу сделать его более динамичным.

Есть идеи?

1 Ответ

5 голосов
/ 08 июля 2010

Попробуйте это:

ALLOWED = ('color', 'size', 'model')
kwargs = dict(
    (key, value)
    for key, value in request.GET.items()
    if key in ALLOWED
)
query.filter(**kwargs)

Это позволит вам делать запросы, подобные этому /search/?color=red&size=1 или /search/?model=Nikon&color=black.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...