我正在尝试使用以下代码检查数据库中是否有条目:
def device_update(request):
json_data = json.loads(request.body)
email = json_data['email']
imei = json_data['imei']
sdk_version = json_data['sdk_version']
date = json_data['updateDate']
rule = json_data['ruleName']
group_name = json_data['group']
if Group.objects.filter(group=group_name).exists():
print("group does exists")
else:
print("group doesn't exists")
return HttpResponse("Successful")
但是,如果错误存在,则当错误到达组500时,返回check。在
我试着检查两组,一组存在,另一组不存在,在这两种情况下,我都得到了错误500。在
我怎样才能解决这个问题?为什么会这样?在
您的视图没有任何错误处理。快看,至少有两件事会出问题。请求正文可能不是有效的json,如果它是有效的json,它可能不包含必需的键。在
为这样的单个视图编写自己的验证是可以的。随着它变得越来越复杂,您可能需要看看django rest框架。它的序列化程序将帮助您管理验证。在
检查
Group
是否存在的逻辑,即行:不会在这里抛出错误。很可能是
json_data
缺少您期望它拥有的一个键,例如,'group'
。在我建议使用^{} method that dictionaries have。当指定的键不在字典中时,这将提供默认值。当请求主体不是有效的JSON格式时,还应该有错误处理。在
下面是一个例子:
^{pr2}$我将默认值设置为空字符串
''
,但您可能需要更改它。在阿拉斯代尔/凯塞尔梅,看来你的观点是正确的。 尝试将ipdb放入代码中以便调试代码,然后可以打印请求数据看看请求中的内容。在
相关问题 更多 >
编程相关推荐