【问题标题】:Model.objects.get returns nothingModel.objects.get 什么都不返回
【发布时间】:2015-04-24 18:00:39
【问题描述】:

我在使用时遇到了这个奇怪的问题 Model.objects.get(op1=1,op2=2)

尽管存在,但它会引发不存在错误。有没有人发生过这种情况?

我什至检查了我的日志,以确保当 id 已经存在于数据库中时发生日志。

[2015-04-24 20:18:21,106] 错误:找不到模型条目:回溯(最近一次调用最后一次): DoesNotExist: NpBilling 匹配查询不存在。

在数据库中,该行的最后修改日期具体是 20:18:19。

这怎么可能发生?!奇怪的是,有时它会起作用,有时它会抛出这个错误。

我尝试使用 get_or_create 但我最终在数据库中有 2 个条目。其中之一是已经创建的。

提前感谢您的帮助。我将不胜感激快速响应和建议。

【问题讨论】:

  • 它告诉您您没有匹配 op1=1, op2=2 的对象。你确定你确实有一个匹配的吗?你是如何确定的?
  • 记录时间是在数据库中行的创建和修改时间之后..此外,如果我使用 get_or_create 它会创建它..我最终得到 2 行。
  • 可能是竞争条件?
  • 请提供更多信息/代码/上下文
  • 你不需要这样做,顺便说一句,django 可以为你做,例如field = DateTimeField(auto_now_add=True, ...)

标签: python django object get models


【解决方案1】:

我在第二次查询之前使用 transaction.commit() 解决了这个问题。

【讨论】:

    猜你喜欢
    • 2012-06-18
    • 2018-09-10
    • 2017-02-14
    • 2013-10-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多