繁体   English   中英

Django模型中的Python Pickle对象

[英]Python Pickle object in Django model

我想知道使用Django orm在postgresql db中存储pickle对象的最简单方法是什么。 提前致谢。

我不会评论是否在数据库中使用腌制数据是明智的。 但您可以使用django-picklefield库来存储pickle数据:

https://pypi.org/project/django-picklefield/

您可以使用BinaryField存储pickle对象。

从问题的评论中,您还可以使用JSONField来存储类实例中的dict。 你可以这样做:

from django.contrib.postgres.fields import JSONField

class YourModel(models.Model):
    data = JSONField()

假设您有一个这样的类(您想要存储):

class YourClass(object):
    a = None
    b = None
    c = None

    def __str__(self):
        return 'Your Class: {}, {}, {}'.format(self.a, self.b, self.c)

现在您可以像这样生成字典:

some_instance = YourClass(a=1, b=2, c=3)
cls_dict = some_instance.__dict__
print(cls_dict)
# {'a': 1, 'b': 2, 'c': 3}

y = YourModel(data=cls_dict)
y.save()

现在您可以尝试从字典中恢复类实例,如下所示:

y = YourModel.objects.first()
some_instance = YourClass()
some_instance.__dict__.update(y.data)

print(some_instance)

# 'Your Class: 1, 2, 3'

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM