这段代码怎么样? GET方法和Q对象

时间:2012-05-28 08:44:32

标签: django django-q

这段代码怎么样?一步步骤

keyword = request.GET['keyword']
for l in keyword.split():
    q = q | (
        Q(title__icontains=smart_str(l)) |
        Q(content__icontains=smart_str(l)) 
        )
    result = News.objects.filter(q)

每行发生了什么?

1 个答案:

答案 0 :(得分:1)

您正在接收GET通话中的关键字列表,然后将其拆分为关键字列表。

循环遍历关键字,并为每个关键字构建一个存储在q中的OR查询。您正在查询数据库中的新闻对象,其中的关键字位于标题或内容中。

在最后一行中,您将过滤掉与您的查询匹配的新闻项。

您可以在此处找到有关Q参数的更多信息:https://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects

| char表示OR。