Django 搜索记录

Django 搜索记录,django,search,Django,Search,我提出了一个简单的搜索视图,可以在我的应用程序中搜索记录。用户只需在搜索框中输入所有参数,然后根据数据库匹配所有参数,然后返回结果。其中一个字段是电话号码……现在在数据库中,它以XXX-XXX-XXX格式存储。例如,对“765-4321”的搜索只会调出“416-765-4321…但是我希望它同时返回“416-765-4321”和“4167654321” 我的看法如下: def search(request, page_by=None): query = request.GET.ge

我提出了一个简单的搜索视图,可以在我的应用程序中搜索记录。用户只需在搜索框中输入所有参数,然后根据数据库匹配所有参数,然后返回结果。其中一个字段是电话号码……现在在数据库中,它以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))

一种选择是将精简后的号码保存在单独的字段中,并通过它进行搜索

电话号码是如何存储的?它们总是xxx xxx xxxx?还是有些是xxx xxx xxxx,有些是XXXXXXXX xxxx?别担心。我没有很好地阅读你的问题。我想我现在就用这个。Thnx Dmitry…不得不等一会儿,看看我是否能上来有更好的。