我有一个相当复杂的视图,其中包含具有多对多和一对一关系的几个子表单和表单集。从上下文对象获取表单时,我遇到了一个奇怪的问题,即某些数据未保存。用form.save()
创建了正确的模型实例,我可以看到我在表单中填写的所有字段,但是添加到数据库中的所有字段都是pk,所有字段均为空。当我使用commit=False
保存然后再次保存,手动更新字段然后保存或使用force_insert=True
时,也会发生相同的情况。但是,可以在同一代码块中创建新实例,而不会出现问题。
这还不止于此,当保存多对多关系时,子模型的保存会毫不费力,但是在大多数情况下,不会创建通过模型的m2m。我大部分时间都说,因为它们偶尔会出现。但是,即使它们不是,数据库中的id描述符也会增加,因此我在穿透表中看到的是几行,比非顺序id-s少得多。
我在这里处理什么,有人知道吗?我不知道下一步该怎么做。我首先用Django 2.2.1注意到了这个问题,然后毫无区别地升级到2.2.3。数据库是库存docker postgres图像(10.4)。我不记得版本2.0.7的问题。