0

我有这个代码:

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没有我object从数据库中得到一些!我使用远程调试并检查了第一次评估时request.user.object_set.get(id=object_id, flag=False)我得到了 Object 实例,第二次评估这段代码时我得到了 DoesNotExist 异常。

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

4

1 回答 1

1

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

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

object_id = request.POST.get('id', None)
于 2012-06-27T06:59:58.727 回答