2010-04-13 87 views
0

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

是如何被存储的电话号码,他们总是XXX-XXX-XXXX或某些XXX-? xxx-xxxx和其他人都是xxxxxxxxxx?nevermind:没有看清你的问题 – 2010-04-13 18:29:02

回答

2

一种选择是保存在不同的领域精简数量,并通过它搜索

+0

我想我现在就去看看。Thnx Dmitry ....必须等一会儿,看看我能不能拿出来更好的东西。 – Stephen 2010-04-14 11:53:16