Как сохранить массив строк в модели Django?
Я создаю модель данных Django, и я хочу иметь возможность хранить массив строк в одной из переменных; как я могу это сделать?
например
class myClass(models.Model):
title = models.CharField(max_length=50)
stringArr = models.???
Спасибо за помощь.
3 ответов
сделайте другую модель, которая содержит строку с необязательным порядком, дайте ей ForeignKey
на myClass
, и сохраните свой массив там.
вы можете использовать некоторый механизм сериализации, такой как JSON. Существует фрагмент с определением поля, который может быть вам полезен:
http://djangosnippets.org/snippets/1478/ (взгляните на код в последнем комментарии)
с таким полем вы можете легко поместить строки в список и назначить их такому полю. Остальное сделает абстракция поля. То же самое и с чтением.
вы можете использовать cPickle...
class myClass(models.Model):
title = models.CharField(max_length=50)
stringArr = models.TextField()
from cPickle import loads, dumps
data = [ { 'a':'A', 'b':2, 'c':3.0 } ]
obj = Myclass.objects.get(pk=???)
# pickle data into a string-like format
obj.stringArr = dumps(data)
obj.save()
# restore original data
data = loads(obj.stringArr)