Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 删除时序列化模型对象时的AttributeError_Python_Json_Django_Django Models_Django Serializer - Fatal编程技术网

Python 删除时序列化模型对象时的AttributeError

Python 删除时序列化模型对象时的AttributeError,python,json,django,django-models,django-serializer,Python,Json,Django,Django Models,Django Serializer,我在一个django项目中工作,希望保留用户删除的对象以便数据库同步,所以我决定将它们存储在json文件中。为此,我重写了模型的delete()方法。 我首先从文件中检索以前删除的对象,然后添加要删除的对象。序列化此新列表时,我得到一个AttributeError: AttributeError:“反序列化对象”对象没有属性“\u meta” 我做错了什么 以下是delete()代码: 如文档中所述,序列化程序中的反序列化方法不会直接返回对象,而是将其包装在反序列化对象中。例如,您需要调用反序

我在一个django项目中工作,希望保留用户删除的对象以便数据库同步,所以我决定将它们存储在json文件中。为此,我重写了模型的delete()方法。 我首先从文件中检索以前删除的对象,然后添加要删除的对象。序列化此新列表时,我得到一个AttributeError:

AttributeError:“反序列化对象”对象没有属性“\u meta”

我做错了什么

以下是delete()代码:

如文档中所述,序列化程序中的反序列化方法不会直接返回对象,而是将其包装在反序列化对象中。例如,您需要调用反序列化的_object.object来访问您的对象

您可以尝试以下方法:

objects_to_delete = list(obj.object for obj in serializers.deserialize(
    "json",
    json_str,
    indent=4,
    use_natural_foreign_keys=True, 
    fields=('pk', 'user', 'slug')
    ))
objects_to_delete = list(obj.object for obj in serializers.deserialize(
    "json",
    json_str,
    indent=4,
    use_natural_foreign_keys=True, 
    fields=('pk', 'user', 'slug')
    ))