Одним из полей, возвращаемых в мой шаблон в наборе форм, сгенерированном modelformset_factory (), является JSONField.Я хотел бы проанализировать JSON и отображать элементы в нем отдельно в форме, только для чтения.
Это легко сделать, если я просто верну список наборов запросов, используя встроенный фильтр, который я создал, get ().Но это должно быть в форме, которая имеет некоторые дополнительные поля для заполнения пользователями.
{% for foo in foo_list %}
<h5>{{ foo.json|get:"title" }}</h5>
{% endfor %}
Проблема заключается в том, что, делая то же самое для поля набора форм, я получаю сообщение об ошибке "У объекта 'BoundField' нет атрибута 'get' '
{% for form in formset %}
<h5>{{ form.json|get:"title" }}</h5>
{% endfor %}
Вот фильтр:
@register.filter(name='get')
def get(d, k):
print('get(d,k):',d,k)
return d.get(k, None)
Соответствующие биты представления:
...
foo_list = Foo.objects.all()
...
FooFormset = modelformset_factory(
Foo, fields = ['task_id','authority','dataset','place_id',
'authrecord_id','json'], form=FooModelForm, extra=0)
formset = FooFormset(request.POST or None, queryset=foo_list)
context['formset'] = formset
...
return render(request, 'datasets/review.html', context=context)