繁体   English   中英

选择主键字段为null的行

[英]Selecting rows with primary key field = null

我有以下代码:

object_id = request.POST.get('id')
try:
    object = request.user.object_set.get(id=object_id, flag=False)
except Object.DoesNotExist:
    object = None

我以为如果object_id == None ,我总是会得到object == None 但不是! object_id为None时,我从数据库中获取了一些object 我使用了远程调试,并检查了第一次评估request.user.object_set.get(id=object_id, flag=False)我获得了Object实例,第二次评估此代码时得到了DidNotExist异常。

我重写了此代码以显式检查object_id ,然后才要求DB获取对象。 我很好奇-为什么会发生这种情况? 一些缓存问题? 另外要注意的一点是-它可以在本地计算机(Windows 7)上按预期工作,它不仅仅在服务器(CentOS)上工作,而且在Python / Django的相同版本上也可以工作。

可能您的帖子数据未按预期发送。 在运行python代码时尝试打印object_id,然后看看得到了什么。 您应该真正考虑在数据库配置中将所有PK都设置为NOT NULL。 要搜索空值,无应这样做

尝试为您的帖子数据设置默认值

object_id = request.POST.get('id', None)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM