Django敲除模型ko_json不返回敲除_字段中定义的正确字段值

2024-05-17 10:17:52 发布

您现在位置:Python中文网/ 问答频道 /正文

我有django模型实例和方法knockout_fields(在其中定义),它用于通过knockout_modeler.ko.ko_json方法将对象转换为json

class OtherModel:
    somefield = '11'

class MyModel:
    field1 = ...
    # to make it more verbose  just putting values directly
    field2 = [OtherModel(), OtherModel()]

    def knockout_fields(self):
        return ['field1', 'field2']

# knockout_objects wouldn't contain proper value of field2 ( it would be equal to [null] 
mymodel_instances = [MyModel(), MyModel()]
knocked_objects = ko_json(mymodel_instances, MyModel().knockout_fields())

问题是field2没有用正确的值序列化。field2的结果值为{},但它假定为OtherModel实例的json序列化值

对于这种情况,我有一个解决办法——我们可以在将字段2放到ko_json之前对其进行json序列化,但最好得到通用的、可重用的解决方案,而不是定义应该序列化的字段的硬编码名称。提前谢谢


Tags: to实例方法jsonfields序列化定义it