Django自定义模型字段保存后做工作

k4ymrczo  于 2023-06-25  发布在  Go
关注(0)|答案(1)|浏览(141)

我有一个自定义模型字段class VaultField(CharField):,它的用法如下:

class MyClass:
  secret = VaultField(max_length=200, blank=True)

它应该将该字段的值保存到HashiCorp Vault中,并将Vault路径存储在数据库中。
当Vault路径是静态的时,这一切都很容易,但我想做的是基于模型示例ID构建Vault路径。
但是from_db_valueto_pythonget_prep_value方法都没有被调用保存,因此没有任何关于示例的数据。
有没有什么方法可以在保存后运行字段代码?
获取路径/fields/[my-class-name]/[my-class-id]

alen0pnh

alen0pnh1#

这不是我想要的,但它在uuid上工作得很好,所以我就把它放在那里。
现在我的Vault路径为:

return f"vault-fields/{self.model.__name__}/{self.name}/{uuid.uuid4()}"

其中self.model.__name__是类的名称,self.name是要保存的字段的名称。
最终成为vault-fields/MyClass/secret/c894295a-9715-4854-afda-83254b16ffba这样的Vault路径。

相关问题