Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python Django:检查object.filter列表中是否存在值_Python_Django_Python 3.x - Fatal编程技术网

Python Django:检查object.filter列表中是否存在值

Python Django:检查object.filter列表中是否存在值,python,django,python-3.x,Python,Django,Python 3.x,在Django项目中,我需要检查用户提交的值是否存在于通过objects.filter从数据库返回的值列表中 用户提交的数据: value = request.data['value_id'] 以ID形式获取有效状态: allowed_values = Values.objects.filter(Q(code='Active') | Q(code='Inactive')).values('id') 这将返回一个查询集,如下所示 检查允许的_值中是否存在用户提交的值: if value in

在Django项目中,我需要检查用户提交的值是否存在于通过objects.filter从数据库返回的值列表中

用户提交的数据:

value = request.data['value_id']
以ID形式获取有效状态:

allowed_values = Values.objects.filter(Q(code='Active') | Q(code='Inactive')).values('id')
这将返回一个查询集,如下所示

检查允许的_值中是否存在用户提交的值:

if value in allowed_values:
    return True

但这不起作用,我需要允许_值作为“id”列表返回。如何在不遍历允许的值并创建新列表的情况下执行此操作?

使用值列表'id',flat=True。值'id'

使用值列表'id',flat=True。值'id'

您可以使用值列表方法而不是值方法

 allowed_values = Values.objects.filter(Q(code='Active') | Q(code='Inactive')).values_list('id',flat=True)
或者,如果只需要检查,可以使用过滤器:

if Values.objects.filter(Q(code='Active') | Q(code='Inactive')).filter(id=value).count() > 0:
    return True

您可以使用values\u list方法代替values方法

 allowed_values = Values.objects.filter(Q(code='Active') | Q(code='Inactive')).values_list('id',flat=True)
或者,如果只需要检查,可以使用过滤器:

if Values.objects.filter(Q(code='Active') | Q(code='Inactive')).filter(id=value).count() > 0:
    return True
您可以使用

allowed_values = Values.objects.filter(...).exists()
如果查询集包含任何结果,则返回True。

您可以使用

allowed_values = Values.objects.filter(...).exists()

如果查询集包含任何结果,则返回True。

根据您的代码,您可以按照以下逻辑编写解决方案

allowed_values = Values.objects.filter(Q(code='Active') | Q(code='Inactive')).values('id')
allowed_values_list = list(allowed_values)

for id_dict in allowed_values_list
    if value == id_dict['id']:
        return True

根据您的代码,您可以按照以下逻辑编写并解决它

allowed_values = Values.objects.filter(Q(code='Active') | Q(code='Inactive')).values('id')
allowed_values_list = list(allowed_values)

for id_dict in allowed_values_list
    if value == id_dict['id']:
        return True

您的意思是用户通过API提交数据?然后有一种自动的方式来做你想做的事情。您正在使用哪些LIB?这是否回答了您的问题?为什么不尝试只拉取与该id相关的数据,如果没有行返回,则不允许。您的意思是用户通过API提交数据?然后有一种自动的方式来做你想做的事情。您正在使用哪些LIB?这是否回答了您的问题?为什么不尝试仅拉取与该id相关的数据,如果没有行返回,则不允许该数据。objects.filterQcode='Active'| Qcode='Inactive',id=value.existsValues.objects.filterQcode='Active'|Qcode='Inactive',id=value.exists