Ответ 1
Сделайте еще одну модель, содержащую строку с необязательным порядком, верните ее ForeignKey
в myClass
и сохраните там свой массив.
Я создаю модель данных Django, и я хочу иметь возможность хранить массив строк в одной из переменных; как я могу это сделать?
например.
class myClass(models.Model):
title = models.CharField(max_length=50)
stringArr = models.???
Спасибо за помощь.
Сделайте еще одну модель, содержащую строку с необязательным порядком, верните ее 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)
Если вы используете PostgreSQL или MongoDB (с djongo), вы можете сделать это
Для PostgreSQL:
from django.contrib.postgres.fields import ArrayField
Для MongoDB (с Джонго):
from djongo import models
from django.contrib.postgres.fields import ArrayField
затем
stringArr = ArrayField(models.CharField(max_length=10, blank=True),size=8)
Вышеуказанное работает в обоих случаях.