2010-04-13 7 views
0

Je suis venu avec une vue de recherche simple pour rechercher des enregistrements dans mon application. L'utilisateur saisit simplement tous les paramètres dans la zone de recherche, puis tout cela est la base de données en correspondance avec, puis les résultats sont retournés. L'un de ces champs est le numéro de téléphone .... maintenant dans la base de données, il est stocké au format XXX-XXX-XXX. Une recherche, par exemple, pour "765-4321" tirer seulement "416-765-4321 ... mais je veux qu'il retourne à la fois" 416-765-4321 "et" 4167654321 "Perquisition des documents

Mon avis est aussi ci-dessous:

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

Comment sont les numéros de téléphone sont stockés sont-ils toujours xxx-xxx-xxxx Ou certains sont xxx-? xxx-xxxx et d'autres sont xxxxxxxxxx Nevermind:.. n'a pas bien lu votre question –

Répondre

2

Une option est de sauver nombre stripped-down dans le champ séparé et recherche par elle

+0

Je pense que je vais avec ce pour l'instant Thnx Dmitry .... a dû attendre pendant un certain temps et voir si je pouvais trouver quelque chose de mieux. – Stephen

Questions connexes