Некоторые базы данных, такие как postgreSQL, имеют встроенную поддержку сложных типов, таких как списки и JSON блоки. К сожалению SQLite нет. Но мы все еще можем это сделать.
Вы захотите создать настраиваемое поле, которое сериализует и десериализует словарь как JSON для хранения и использования.
This Средняя статья дает хороший обзор и объяснение, но ту часть, которая вас интересует, я скопировал ниже
class JSONField(Field):
def db_type(self, connection):
return 'text'
def from_db_value(self, value, expression, connection):
if value is not None:
return self.to_python(value)
return value
def to_python(self, value):
if value is not None:
try:
return json.loads(value)
except (TypeError, ValueError):
return value
return value
def get_prep_value(self, value):
if value is not None:
return str(json.dumps(value))
return value
def value_to_string(self, obj):
return self.value_from_object(obj)