我有这段代码:
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上工作。
答案 0 :(得分:1)
也许你的帖子数据没有按预期发送。在运行python代码时尝试打印object_id,看看你得到了什么。您应该考虑在数据库配置中将所有PK设置为NOT NULL。要搜索空值,“无”应该这样做
尝试为帖子数据设置默认值
object_id = request.POST.get('id', None)