Как сохранить массив строк в модели 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)