django - 如何使用模式作为 Django JSONField 的默认值
问题描述
我想使用带有属性的字典作为我的 JSONField 的默认值,而不是简单的空字典。
架构:
class FinancialDataSchema(marshmallow.Schema):
capital = fields.Float(allow_none=True) # Capital social
revenue = fields.Float(allow_none=True) # Chiffre d'affaires
revenue_year = fields.Int(allow_none=True) # Année du chiffre d'affaires
account_published = fields.Boolean(allow_none=True) # Publication des comptes
该模型:
class ServiceProvider(models.Model):
financial_data = JSONField(validators=[MarshmallowValidator(schema=schemas.FinancialDataSchema)], default=dict)
问题:默认情况下,密钥serviceProvider.finalcial_data.capital
不存在。
我希望创建密钥并将其值设置为无。
我试过的:
JSONField(validators=[MarshmallowValidator(schema=schemas.FinancialDataSchema)], default=schemas.FinancialDataSchema)
我有:
TypeError: Object of type 'FinancialDataSchema' is not JSON serializable
解决方案
推荐阅读
- wpf - 使用滚动条时,文档属于另一个 FlowDocumentScrollViewer 已经异常
- elasticsearch - 如何获取嵌套字段的“缺失”聚合桶
- mysql - Mysql - 将递增数字更新为varchar
- godot - 如何停止执行 EditorScript?
- c# - 如何使用 ASP.NE Core 身份 SignInManager
在 Winforms 和控制台应用程序中 - python - Pandas df.to_latex() 输出被截断
- mongodb - 节点猫鼬嵌入文档数组
- python - 理解 subprocess.Popen() 的输入
- graphql - GraphQL 中的嵌套字段解析器
- apache-spark - 未启用 HDFS 的 Spark 读取 - 简单身份验证