Вы можете использовать BinaryField
для хранения маринованного объекта.
Из комментариев к вопросу вы также можете использовать JSONField
для хранения dict из экземпляра класса. Вы можете сделать это так:
from django.contrib.postgres.fields import JSONField
class YourModel(models.Model):
data = <b>JSONField()</b>
Допустим, у вас есть такой класс (который вы хотите сохранить):
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'