Я придумал простой поиск для поиска записей в моем приложении. Пользователь просто вводит все параметры в поле поиска, затем все это сопоставляется с базой данных, после чего результаты возвращаются. Одним из этих полей является номер телефона ... теперь в базе данных он хранится в формате 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 и другие - xxxxxxxxxx? nevermind: не хорошо читал ваш вопрос. –