Django автозаполнение полей, лучше предварительно заполнить? - PullRequest
1 голос
/ 13 января 2012

Я ищу интеграцию jqueryui-autocomplete с проектом django.Моя отправная точка для решения была https://code.djangoproject.com/wiki/AutoCompleteSolutions.

Решения, с которыми я сталкивался, используют *__icontains или *__startswith, хотя эти поиски, конечно, могут быть кэшированы (глядя на http://djangosnippets.org/snippets/233/). IИнтересно, если бы предварительное заполнение страницы сравнительно небольшим списком терминов (10 000?) в массиве действительно сэкономило бы хиты базы данных и было бы лучшим решением, например, вывод терминов через django за один раз:

return [str(e.keyword) for e in CM_Dict.objects.all()]

, а затем использовать полученный список как source: в действительно базовой конфигурации jquery-ui-autocomplete.

Есть ли хороший способ для сравнения таких вещей?использовать django + автозаполнение в работе?

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

1 Ответ

0 голосов
/ 14 января 2012

Для меня это звучит как ранняя оптимизация.Сэкономит ли это на попаданиях в БД?Может быть, вам все равно придется нажимать на БД для предварительного заполнения, чтобы пострадала начальная загрузка страницы.Вы можете кэшировать данные перед заполнением, чтобы избежать попадания в БД, но вы можете сделать это и на серверной стороне.Казалось бы, это лучше интегрируется с существующими решениями для автозаполнения Django.

Я использовал несколько решений для автозаполнения в производстве.Я также являюсь автором одного из них: django-selectable .Для сравнительного анализа изменений такого типа необходимо знать, насколько дорог каждый запрос и как часто он используется.Разбор журналов сервера для подсчета / времени загрузки будет началом.В целом, я был бы удивлен, если бы ваши автозаполненные представления ajax были узким местом в вашем приложении.

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