Python Django:检查object.filter列表中是否存在值
在Django项目中,我需要检查用户提交的值是否存在于通过objects.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
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