Поиск по шаблону в Django - PullRequest
       58

Поиск по шаблону в Django

1 голос
/ 08 марта 2011

Как мы можем сделать поиск по шаблону в Django.Если я фильтрую имя пользователя из списка в базе данных, как можно отобразить отфильтрованные данные с этими точными именами пользователей или их частью .?

def filter(request):
    val3='' 
    if request.GET.has_key('choices'):
        val2=request.GET.get('choices')
    if request.GET.has_key('textField'):
        val3=request.GET.get('textField')
    if request.POST:
        val2=request.POST.get('choices')    
        val3=request.POST.get('textField')
    if val2=='Designation':                
        newData = EmployeeDetails.objects.filter(designation=val3) 
        flag=True 
    elif val2=='Name':
        newData = EmployeeDetails.objects.filter(userName=val3)
        flag=True 
    elif val2=='EmployeeID':
        newData = EmployeeDetails.objects.filter(employeeID=val3)  
        flag=True       
    elif val2=='Project':
        newData = EmployeeDetails.objects.filter(project=val3)   
        flag=True   
    elif val2=='DateOfJoin':
        newData = EmployeeDetails.objects.filter(dateOfJoin=val3) 
        flag=True       
    else:
        return HttpResponseRedirect('/employeeList/')

Это моя функция для фильтрации.Теперь его фильтрация с точными словами.Я хочу, чтобы отображать userNames, даже если часть из них предоставляется для фильтрации.Пожалуйста, помогите мне решить эту проблему, так как я новичок в Django

Ответы [ 3 ]

6 голосов
/ 08 марта 2011

Вы можете использовать contains запрос, например

Entry.objects.get(headline__contains='Lennon')

См. http://docs.djangoproject.com/en/dev/ref/models/querysets/#contains

Есть и другие варианты, такие как начинается с , заканчивается с и вы можете даже регулярное выражение искать в большинстве баз данных.

4 голосов
/ 08 марта 2011

Попробуйте использовать менее строгий фильтр, например __contains:

elif val2=='Name':
        newData = EmployeeDetails.objects.filter(userName__contains=val3)
        flag=True 

Документы: http://docs.djangoproject.com/en/dev/ref/models/querysets/#contains

1 голос
/ 08 марта 2011

Возможно поиск полей поможет вам здесь.Позволяет фильтровать по началу слова, содержащему слово и т. Д.

...