python-3.x - 检查postgres数组django上是否存在
问题描述
我有像东西南北这样的区域,并且我在所有 4 个区域中添加了状态。每个状态都存储在数组类型中,如下所示:{cd26ddeb-04cb-4d9a-8c7f-51d5d389f475,bc44618d-3a21-475b-8d74-c0542abb173b, 18695611-256e-4506-a087-596f8914551d} 我想做的是每当我有任何新状态时,它应该检查所有区域(如果存在)然后什么也不做,否则添加这个。问题是我正在传递需要与以前添加的状态一起添加的新状态。然后我正在检查所有区域状态(如果不存在)然后将其添加到 new_state 列表并传递给数据,但这部分不起作用:
if state not in all_state:
#its not filtering states returning all
new_state.append(state)
@api_view(['POST'])
@login_required_message
def zoneEdit(request):
data = decode_data(request.data.copy())
new_state = []
try:
try:
zone_queryset = Zone.objects.get(uid=data['uid'])
all_state = Zone.objects.values_list('state',flat=True)
print(all_state, "all_state")
data["created_by"] = request.user.uid
for state in data['state']:
if state not in all_state:
#its not filtering states returning all
new_state.append(state)
print(new_state, "to be added")
zone_serializer_obj = ZoneSerializer(zone_queryset, data=new_state)
if zone_serializer_obj.is_valid():
try:
city_save = zone_serializer_obj.save()
return CustomeResponse(request=request, comment=ZONE_NAME_UPDATE, data=json.dumps(zone_serializer_obj.data, cls=UUIDEncoder), status=status.HTTP_200_OK, message=ZONE_NAME_UPDATE)
except Exception as e:
return CustomeResponse(request=request, log_data=json.dumps(str(e), cls=UUIDEncoder), message=SOMETHING_WENT_WRONG+" mv54 "+str(e), data=json.dumps({}, cls=UUIDEncoder), status=status.HTTP_400_BAD_REQUEST, validate_errors=1)
else:
return CustomeResponse(request=request, comment=FIELDS_NOT_VALID, data=json.dumps(zone_serializer_obj.errors, cls=UUIDEncoder), status=status.HTTP_400_BAD_REQUEST, validate_errors=1)
else:
return CustomeResponse(request=request, comment=FIELDS_NOT_VALID, data=json.dumps({}, cls=UUIDEncoder), status=status.HTTP_400_BAD_REQUEST, validate_errors=1)
except City.DoesNotExist:
return CustomeResponse(request=request, comment=ZONE_NAME_NOT_FOUND, message=ZONE_NAME_NOT_FOUND, data=json.dumps({}, cls=UUIDEncoder), status=status.HTTP_400_BAD_REQUEST, validate_errors=1)
except Exception as e:
error_str = KEY_MISSING if type(e) is KeyError else UID_IS_NOT_VALID
return CustomeResponse(request=request, log_data=json.dumps(str(e), cla=UUIDEncoder), comment=error_str, message=error_str, data=json.dumps({}, cls=UUIDEncoder), status=status.HTTP_400_BAD_REQUEST, validate_errors=1)
我可以将多个状态与同一区域上的先前现有状态一起传递到数组中。如果有更好的方法来检查所有区域状态是否存在哪个状态,请建议
解决方案
推荐阅读
- jquery - b.on() 不是一个函数 jquery
- sql - 如何将id交叉引用到sql中的另一列?
- node.js - 将自定义参数添加到 Mongoose 模式
- sql-server - 看似不正确的运算符优先级
- java - 在可以是电子邮件或 URL 的字段上使用预定义的验证器进行 Spring 模式验证
- oauth-2.0 - Alexa Skill Kit 帐户链接 accessToken 字段未显示
- javascript - 字符串数组到树数据结构
- c# - 必应反向地理编码
- python - 熊猫 Python 条件
- typescript - 角度 6 发布请求返回正确的对象,但从服务到组件它变得未定义