Существует другое решение, которое падает где-нибудь между двумя. Можно использовать столбец типа xml для ключей и значений. Таким образом, Вы сохраняете itemid поле, затем имеете xml поле, которое содержит xml, определенный для некоторых пар значения ключа как <items> <item key="colour" value="red"/><item key="xxx" value="blah"/></items>
Тогда, когда Вы извлекаете свои данные fro база данных, можно обработать xml различными способами. В зависимости от Вашего использования. Это - расширение способного решения.
CommaSeparatedIntegerField приходит в ум мгновенно. Он реализован как VARCHAR
на большинстве баз данных. Однако для уверенности вы можете просмотреть django / db / backends / *
.
См. этот ответ для описания возможной альтернативной версии CommaSeparatedIntegerField это сделало бы за вас больше работы (преобразование из списка в строку и обратно). Может быть, вы могли бы узнать у этого парня, написал ли он это уже: -)