Python 从jsonpickle.encode中排除django_状态属性的简单方法

Python 从jsonpickle.encode中排除django_状态属性的简单方法,python,django,jsonpickle,Python,Django,Jsonpickle,我有一个python类,它不是Django模型对象: class APIBase: data = object class Meta: abstract = True def toJSON(self): return jsonpickle.encode(self, unpicklable=False) 然而,这个类的data属性可以包含一个Django模型,当这个模型由jsonpickle编码时,JSON字符串包含一个来自Django

我有一个python类,它不是Django模型对象:

class APIBase:
    data = object

    class Meta:
        abstract = True

    def toJSON(self):
        return jsonpickle.encode(self, unpicklable=False)
然而,这个类的
data
属性可以包含一个Django模型,当这个模型由jsonpickle编码时,JSON字符串包含一个来自Django的私有属性,我不希望对其进行编码

有没有一种简单的方法可以排除这种情况,而不用编写自己的编码器?我可以相信,只有
data
属性才能包含Django模型

我仍在学习python和django,但根据我的理解,任何以下划线开头的属性都被视为私有属性,因此我惊讶地看到它被编码了。

找到了答案:

def toJSON(self):
    clone = copy.deepcopy(self)
    if getattr(clone.data, '_state', False):
        del clone.data._state
    return jsonpickle.encode(clone, unpicklable=False)