context = {
'object_field_list': SpecialField.objects.values_list('value_options', flat=True),
}
Должно дать вам то, что вы на самом деле хотите зациклить.
РЕДАКТИРОВАТЬ: Извините, я упустил тот факт, что вы храните строку вместо использования ArrayField
или аналогичного.Проблема из вашего обновленного ответа заключается в том, что ваши данные не соответствуют друг другу.Если бы это были просто все значения, разделенные запятыми, вы могли бы сделать:
object_field_list = [value_list.split(',') for value_list in SpecialField.objects.values_list('value_options', flat=True)]
, но вам потребуется какой-то способ нормализации данных, которые вы храните в value_options
.Как данные попадают в базу данных?Если это через Django, вы можете применить какой-либо метод очистки к форме или конечной точке API, который принимает данные.
Попытка сохранения поля объекта различными способами, "['1', '2'] "и" 1,2 ".Попробовал фильтр "| make_list".
Если у вас есть полный контроль над входящими данными, вам лучше было бы нормализовать данные : вместо того, чтобы хранить один value_options
введите SpecialField
, вы удалите это поле и добавите вторую модель, например, SpecialFieldOption
, например
class SpecialFieldOption(models.Model):
name = models.CharField(max_length=200, blank=False)
field = models.ForeignKey(SpecialField, related_name='options')
# now you can do
SpecialField.objects.get(pk=1).options.all()
, чтобы просмотреть список всех опций для данного SpecialField
.
.