2010-04-13 91 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