我正在尝试将查询搜索与所有模型字段进行比较,但我不知道如何在多个字段中执行此操作。
这是我的代码。
expense = Expense.objects.filter(user=request.user.id).order_by('date')
q = request.GET['q']
result = expense.filter(name__icontains=q)
我想办理入住:name
, amount
, category
提前致谢
来自 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)
)
我不确定您的模型中的金额和类别的类型,因此 icontains 可能不适用于它们。
see 这个链接 https://docs.djangoproject.com/en/dev/topics/db/queries/#complex-lookups-with-q-objects.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)