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)
你的问题很可能是因为错误使用'超级'.它应该是这样的:
super(TrackedItem, self).save(*args, **kwargs)
Run Code Online (Sandbox Code Playgroud)