2012-01-12 4 views
1

jqueryui-autocomplete를 django 프로젝트와 통합하려고합니다. 솔루션 시작 지점은 https://code.djangoproject.com/wiki/AutoCompleteSolutions입니다.Django 자동 채우기 필드가 미리 채우기가 좋습니다.

나는이 검색이 물론 캐싱 될 수 있지만 (http://djangosnippets.org/snippets/233/) 물론 내가 만난 솔루션은 *__icontains 또는 *__startswith입니다. 배열에 상대적으로 작은 용어 목록 (10,000 개)을 페이지에 미리 채우는 것이 실제로 데이터베이스 히트 수를 줄이는 지 궁금합니다. &은 더 나은 해결책이 될 수 있습니다.

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

을하고 정말 기본적인 JQuery와 - UI - 자동 완성 설정에 source:으로 결과 목록을 사용하여 예를 들어, 한 번에 장고를 통해 조건을 출력한다.

이와 같은 벤치마킹을위한 좋은 방법이 있습니까? 누구든지 생산에서 장고 + 자동 완성을 사용합니까?

편집 : 자동 완성 기능은 로그인 한 사용자 만 사용할 수 있지만 데이터는 어떤 방식 으로든 민감하지 않습니다.

+0

처음부터 Ajax 자동 완성을 사용하려는 이유가 필요하지 않습니다. 마음을 읽을 수 없다면 미리 채워진 데이터는 잠재적 인 쿼리의 기본 집합을 포괄하기 위해 상대적으로 커질 필요가있을 것입니다. 사용자 중 절반이 미리 채워진 데이터를 누르더라도 여전히 데이터를 전송하기 위해 시간 (및 대역폭)을 사용했지만 여전히 서버에 접속해야하는 사람들의 절반이 있습니다! –

+0

JS 배열을 사용하도록 구성된 jqueryui-autocomplete를 사용하는 옵션이 없습니다. 이것은 Google이나 일부 일반 검색과 같은 잠재 검색어가 아니며 필드의 잠재적 인 용어 목록 일뿐입니다. – null

답변

0

이것은 초기 최적화 같아 보입니다. DB 히트를 줄일 수 있을까요? 아마도 어쨌든 미리 채우기 위해 DB에 충돌해야하므로 초기 페이지로드에 문제가 생길 수 있습니다. DB 채우기를 피하기 위해 채우기 전 채우기 데이터를 캐시 할 수 있지만 서버 측보기에서도 그렇게 할 수 있습니다. 그것은 기존 Django 자동 완성 솔루션과 더 잘 통합되는 것 같습니다.

저는 생산 과정에서 몇 가지 자동 완성 솔루션을 사용했습니다. 나는 그들 중 하나의 저자이기도하다 : django-selectable. 이러한 유형의 변경을 벤치마킹하려면 각 쿼리의 비 용과 사용 빈도를 알아야합니다. 카운트 /로드 시간에 대한 서버 로그 구문 분석이 시작됩니다. 전반적으로 자동 완료 아약스보기가 응용 프로그램의 병목이라면 놀랄 것입니다.

관련 문제