django模型使用空列表获取所有值

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

我需要根据特定条件过滤数据库中的结果。如果提供了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.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_数据)