Django的get_or_create方法返回不存在的数据

时间:2018-08-10 16:06:22

标签: python django django-1.8

我有一个称为Service的模型,其中有一个名为Service1的对象。我在外壳上得到了以下内容:

$ obj, created = Service.objects.get_or_create(name=u'Service1')
$ obj
  <Service: Service1>
$ obj.id
  3
$ created
  False
$ Service.objects.all()
  [<Service: Service1>]
$ Service.objects.first().id
  1

我检查了数据库,只有一个Service对象,即id = 1的Service。为什么get_or_create检索甚至不存在的对象?

1 个答案:

答案 0 :(得分:0)

问题在于缓存。我正在使用数据库的新转储,但是忘记了使缓存无效。 Django正在检索一个不再存在的对象,但会在旧数据库中找到该对象。