Django视图中如何修改其他Model类的实例属性?
开发方向指引
- 先修正代码变量名错误:你视图中未定义
pro变量,你查询出的Projekt实例变量名为projekt,修改pro.wybor_projekt = 'PRAWDA'这行的变量名,和你查询的实例名保持一致。 - 直接操作已查询的Projekt实例即可:你已经通过
projekt = Projekt.objects.get(id=pk)拿到了对应实例,直接修改该实例的wybor_projekt属性后调用projekt.save()即可完成字段更新,不需要通过表单保存的opcje实例反向获取关联对象修改,避免多实例数据不同步问题。 - 如果你要通过
opcje.projekt修改属性,修改后必须单独调用opcje.projekt.save()保存:仅调用opcje.save()或者form.save()只会保存当前Options模型实例的修改,不会自动级联保存关联外键模型的属性修改。 - 检查表单保存逻辑的顺序:你在
opcje.save()之后再次调用form.save(),如果你的OptionsForm中包含关联projekt字段的配置,第二次的表单保存操作可能会覆盖你之前对关联实例的修改,可调整保存顺序,或者确认第二次调用form.save()的必要性。
内容的提问来源于stack exchange,提问作者ProtoN
相关产品推荐
相关产品推荐

