如果没有实例,则将模型属性添加到实例

时间:2018-07-02 10:56:47

标签: python django python-2.7 model

我最近在“估算创建(财务)”中添加了一个可选的“费用模型”选项。 现在,当我尝试编辑语句时,可选成本更新之后创建的语句成功更新。但是以前没有可选的费用模型属性的语句在更新时会失败。

这就是我尝试过的

if hasattr(instance,"optional_amount"):
  optional_estimate_amounts = optional_estimate_amounts_formset.save(commit=False)
  for f in optional_estimate_amounts:
    f.estimate = instance
    f.save()
  for obj in optional_estimate_amounts_formset.deleted_objects:
    obj.delete()
else:
  for optional_estimate_amounts in optional_estimate_amounts_formset:
    optional_amount_description = optional_estimate_amounts[
      'optional_amount_description']
    optional_amount = optional_estimate_amounts['optional_amount']
    OptionalEstimateAmounts(
      estimate=data,
      optional_amount_description=optional_amount_description,
      optional_amount=optional_amount
    ).save()

当前,它引发类型错误。 我想知道如果尝试编辑估算时没有实例,如何为现有估算实例创建一个新的可选金额模型属性?

1 个答案:

答案 0 :(得分:0)

NeverMind,setAttr()是我一直在寻找的东西。如果hasAttr()返回false,请使用setAttr添加该属性