В поисках записей - PullRequest
       12

В поисках записей

0 голосов
/ 13 апреля 2010

Я предложил простой вид поиска для поиска записей в моем приложении. Пользователь просто вводит все параметры в поле поиска, затем все это сопоставляется с базой данных, а затем возвращаются результаты. Одним из этих полей является номер телефона .... теперь в базе он хранится в формате XXX-XXX-XXX. Поиск, например, «765-4321» только для подтягивания «416-765-4321 ... однако я хочу, чтобы он возвращал и« 416-765-4321 »и« 4167654321 »

На мой взгляд, как показано ниже:

def search(request, page_by=None):    
   query = request.GET.get('q', '')
   if query:
      term_list = query.split(' ')
      q = Q(first_name__icontains=term_list[0]) | 
          Q(last_name__icontains=term_list[0]) | 
          Q(email_address__icontains=term_list[0]) | 
          Q(phone_number__icontains=term_list[0])
      for term in term_list[1:]:
          q.add((Q(first_name__icontains=term) | 
                 Q(last_name__icontains=term) | 
                 Q(email_address__icontains=term) | 
                 Q(phone_number__icontains=term)), q.connector)
      results = Customer.objects.filter(q).distinct()
      all = results.count()
  else:
    results = []

  if 'page_by' in request.GET:
    page_by = int(request.REQUEST['page_by'])
  else:
    page_by = 50

  return render_to_response('customers/customers-all.html', 
                             locals(), context_instance=RequestContext(request))

1 Ответ

2 голосов
/ 13 апреля 2010

Одним из вариантов является сохранение урезанного номера в отдельном поле и поиск по нему

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