【发布时间】:2014-05-08 14:50:48
【问题描述】:
这是我的models 和manager 课程。我认为问题出在下面的PostingFilterManager 中。我在title 和body_text 中搜索关键字的方式是错误的。
我想在下面的Postings 模型的title 和body_text 中查询keywords 的列表。我没有收到任何错误,但同时浏览器上没有显示任何内容。我确信过滤器应该返回一个帖子。
class PostingFilterManager(models.Manager):
def get_by_keywords(self,wordlist):
print "called"
posts=super(PostingFilterManager,self).get_query_set().filter
(Q(body_text__in=wordlist) | Q(title__in=wordlist))
print posts
return posts
class Postings(models.Model):
carinfo=models.ForeignKey('CarInfo')
title = models.CharField(max_length=100, blank=True)
body_text = models.TextField(blank=True)
objects=models.Manager()
filters=PostingFilterManager()
def __unicode__(self):
return unicode(self.website)
my view:
def detail(request,year):
result=Postings.filters.get_by_keywords(['hello'.'world','clean'])
return HttpResponse(result)
【问题讨论】:
-
...filter(CarInfo.objects.filter(year__lte=year))— 你不是说...filter(carinfo__in=CarInfo.objects.filter(year__lte=year))吗? -
@lanzz:这很有帮助,谢谢。但我有相关的问题,我在这个问题上进行了编辑。我的视图将关键字列表传递给 Manager 对象,它反过来应该过滤这些关键字的标题和正文,我无法正常工作,请帮助
-
您是在此处复制并粘贴您的代码,还是手动再次输入?因为
['hello'.'world','clean']会因为'hello'和'world'之间的点而引发SyntaxError异常。
标签: django django-models django-queryset django-filter django-managers