2013-04-06 71 views
3

我有表領域的技能和標題。我想用單個輸入過濾這些字段。從單個輸入的兩個字段的Django過濾器

models.py 
class job(model.Model): 
    title = models.CharField(max_length=30) 
    skills = models.CharField(max_length=30) 

search.html 
<form> 
<input type="text" name="skills" /> 
<input type="submit" /> 
</form> 

views.py 
jobs.objects.filter(skills__icontains=request.GET['skills'],title__icontains=request.GET['skills']) 

雖然我試着這段代碼無法獲得輸出。在輸入框中輸入標題或技能時,我需要輸出,它與技能和標題相匹配。它應該是一個單一的input.some一個幫助我..

+0

你可能不應該叫表單域'skills'如果它被用來在工作中標題搜索太。稱之爲「搜索」。 – 2013-04-06 11:19:38

回答

6

您的代碼搜索工作,其中兩個標題和技能包含request.GET['skills']。爲了找工作,其中標題或技能(或兩者)包含request.GET['skills'],你必須使用Q對象:

from django.db.models import Q 
... 
search = request.GET['skills'] 
     #  skills contain search OR title contains search 
query = Q(skills__icontains=search) | Q(title__icontains=search) 
job.objects.filter(query)