0

我有一个模型:

class Job(models.Model):
   title=models.CharField(max_length=40)
   genre=models.ManyToManyField(JobGenre, through='GenreToJob')   
   creator=models.ForeignKey(Customer)
   location=models.TextField()
   start_time=models.DateTimeField()             
   end_time=models.DateTimeField()
   description=models.TextField()
   reward=models.CharField(max_length=100, null=True)
   isActive=models.BooleanField(default=True)
   picture=models.ImageField(upload_to='media/job', null=True)     
   questions=models.ForeignKey(Question,null=True )

我想创建一个搜索字段来搜索具有特定字段关键字的工作,它能够在多个列中进行搜索,例如:'title'、'genre'、'description' 等。Job.objects.filter() 只能在一列中搜索。

4

2 回答 2

2

你可以这样使用,

Job.objects.filter(column1=..).filter(column2=..).filter(column3=..)
于 2013-06-13T11:38:01.340 回答
0

据我记得,您的陈述“Job.objects.filter() 只能在一列中搜索”甚至没有通过笑声测试。请阅读https://docs.djangoproject.com/en/dev/topics/db/queries/上的精细文档,特别是在提到 chianing 过滤器的地方。更复杂的查询可以通过“Q”对象来处理。'Like' 查询更复杂(但您仍然可以相当轻松地进行 endwith 或 startswith 类型的查询)。

干杯阿尔夫

于 2013-06-13T11:43:25.983 回答