2016-03-29 1 views
0

Вот поле Модель:обогнуть неудобство Postgres ARRAYField в Джанго 1.9

prices = ArrayField(models.DecimalField(max_digits=6, decimal_places=2), null=True)... 

Значения:

prices': [[Decimal('23.00'), Decimal('38.50')], [Decimal('11.06')], [Decimal('20.00')], [Decimal('3.95')], [Decimal('11.00')], [Decimal('1.77'), Decimal('31.34')], [Decimal('6.62'), Decimal('19.00')], [Decimal('20.60')].....] 

Моя цель, чтобы вставить в Postgres БД таким образом:

models.DasModel.objects.create(
       somedate  = date, 
       myprices  = prices,..) 

Насколько я понимаю, Postgres не может принимать такие списки в ArrayField, но они должны иметь форму {val1, val2,...} Ошибка, которую я получаю:

ДЕТАЛИ: "[" должно вводить явно заданные размеры массива.

Есть ли быстрый и простой способ сделать преобразование?

+0

Привет @codervince. Вы уже решили это? Я использую ArrayField (JSONField()), и я получаю точную ошибку, такую ​​как ваша. – aldesabido

ответ

0

Попробуйте использовать -

prices = ArrayField(ArrayField(models.DecimalField(max_digits=6, decimal_places=2)), null=True)... 
+0

Обоснование? Я просто попробовал это - ничего не делаю. Идентификатор скорее подходит для ввода модели, а не наоборот - в противном случае Id перейдет на JSONField и покончит с этим. – codervince