我有一个称为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
检索甚至不存在的对象?
答案 0 :(得分:0)
问题在于缓存。我正在使用数据库的新转储,但是忘记了使缓存无效。 Django正在检索一个不再存在的对象,但会在旧数据库中找到该对象。