gpt4 book ai didi

Django JSONField 具有特定的键

转载 作者:行者123 更新时间:2023-12-05 00:52:06 26 4
gpt4 key购买 nike

我的课是这样的:

class Foo(models.Model):
known_by = JSONField()

我的数据看起来像这样
{ "known_by" : [
{'by':'name1', 'value':['def']},
{'by':'name2', 'value':['bar']}
]
}

我有什么办法可以强制执行 Jsonfield需要遵循 by,value[]的格式字典。我知道如何使用 serialiazers 来做到这一点

任何其他更清晰的方法来强制执行此操作(在模型定义本身中)?谢谢

最佳答案

您可以向模型字段添加验证器,如下所示:

 class Foo(models.Model):
known_by = ArrayField(JSONField(max_length=100), size=4, validators=[a_json_array_validator])

验证器是:
def a_json_array_validator(value):
if any([not is_json_valid(entry) for entry in value]):
raise ValidationError(
_('%(value) is not a valid json'),
params={'value': value},
)

(实际的 json 验证取决于您);-)
请注意,验证器接收 python 对象,因此它实际上是一个字典。

关于Django JSONField 具有特定的键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43376927/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com