保存在Django模型中结合了前缀和主键的charfield列吗?

时间:2019-11-22 08:29:09

标签: django postgresql django-models

我创建了一个模型“ PurchaseRequest”。 pk是自动创建的。现在,我创建了一个charfield列,该列将在保存过程中存储“ PR#+ pk”之类的值。

 def save(self, force_insert=False, force_update=False, using=None,
         update_fields=None):
    self.pr_number = 'PR #' + str(self.id)
    super(PurchaseRequest, self).save()

但是,它返回PR#None。一旦我编辑并保存它,它将返回正确的答案,因为显然现在它获取了id。

1 个答案:

答案 0 :(得分:0)

您需要先保存对象,然后设置PR字段,然后再次保存。

您可以执行以下操作:

 def save(self, **kwargs):
     super(PurchaseRequest, self).save(**kwargs)
     self.pr_number = 'PR #' + str(self.id)
     super(PurchaseRequest, self).save(**kwargs)