django模型使用空列表获取所有值
我需要根据特定条件过滤数据库中的结果。如果提供了ID列表,则应返回与这些ID相关的值;如果提供了空列表,则应返回所有值 假设一个表有5行值,django模型使用空列表获取所有值,django,django-models,Django,Django Models,我需要根据特定条件过滤数据库中的结果。如果提供了ID列表,则应返回与这些ID相关的值;如果提供了空列表,则应返回所有值 假设一个表有5行值,Model.object.filter(id\uu in=[1,2])应该返回id为1和2的值。 和Model.object.filter(id\uu in=[])应返回所有值 这可以通过单个查询或链接筛选器来完成吗?试试看 k = [1,2] if k: Model.object.filter(id__in=[1,2]) else: Model.o
Model.object.filter(id\uu in=[1,2])
应该返回id为1和2的值。
和Model.object.filter(id\uu in=[])
应返回所有值
这可以通过单个查询或链接筛选器来完成吗?试试看
k = [1,2]
if k:
Model.object.filter(id__in=[1,2])
else:
Model.object.all()
如果需要在一个查询中执行
from django.db.models import Q
k = [1,2]
if k:
k_data = Q(id__in=k)
else:
k_data = Q(id__isnull=False)
Model.objects.filter(k_data)
您应该使用一个列表类型的变量,根据它您应该查询数据库 例如:
id_list = [1,2]
if len(id_list) > 0:
Model.objects.filter(id__in=id_list)
else:
Model.objects.all()
谢谢你的建议。这可以无条件完成吗?@user11129319我根据您的要求编辑了答案。如果您得到空列表,将执行另一个条件来检索所有数据。非常感谢@Gorkali Khadka<代码>过滤器(k)应该是
过滤器(k_数据)