8

我正在尝试将我的查询搜索与我的所有模型字段进行比较,但我不知道如何在多个字段中进行比较。

这是我的代码。

expense = Expense.objects.filter(user=request.user.id).order_by('date')

q = request.GET['q']
result = expense.filter(name__icontains=q)

我要签到: name, amount,category

提前致谢

4

1 回答 1

18

来自 Django 文档:

“关键字参数查询 - 在 filter() 等中 - 被“AND”在一起。如果您需要执行更复杂的查询(例如,使用 OR 语句的查询),您可以使用 Q 对象。

from django.db.models import Q
expense.objects.filter(
    Q(name__icontains=q) | Q(amount__icontains=q) | Q(category__icontains=q)
)

我不确定您的模型中的数量和类别的类型,因此图标可能无法在它们上使用。

看到这个链接

于 2013-02-23T20:18:35.143 回答