为什么我不能在Django中使用两次通用关系保存我的模型?

e-s*_*tis 2 django save generic-relations

我得到了一个模型TrackedItem,其通用关系链接到它应该跟踪的任何模型.

如果我这样做:

t = TrackedItem(content_object=MyModel)
t.save()
t.save()
Run Code Online (Sandbox Code Playgroud)

我明白了:

IntegrityError: (1062, "Duplicate entry '1' for key 'PRIMARY'")
Run Code Online (Sandbox Code Playgroud)

实际上,第一次保存创建了一个以"1"作为PK的条目.但是第二次保存不应该插入,它应该更新.

我怎么想更新模型我不能保存两次?

使用普通型号,我可以尽可能多地保存.

编辑:它可能与通用关系完全无关.

我有一个超越的保存,我用这种方式称之为超级:

super(TrackedItem, self).save(self, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

如果我这样做,它的工作原理:

model.Model.save(self, *args, **kwargs)
Run Code Online (Sandbox Code Playgroud)

Bot*_*res 5

你的问题很可能是因为错误使用'超级'.它应该是这样的:

super(TrackedItem, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)