Как отрисовывать набор форм вручную?

#django

Вопрос:

Я не могу понять, как визуализировать набор форм вручную. Я создал набор форм следующим образом: ImageFormset = modelformset_factory(PostImages, fields=('image',), extra=0, can_delete=True) .

И когда я визуализирую набор форм, я получаю это:

введите описание изображения здесь

Я хочу избавиться от всего этого текста и написать свой собственный, как мне это сделать?

Комментарии:

1. Отрисованные вручную can_delete и can_order Я не думаю, что это именно то, что вы ищете, но это может вызвать некоторые идеи.

Ответ №1:

я думаю, что вы можете добавить метку в свой набор изображений следующим образом :

 ImageFormset = modelformset_factory(PostImages, fields=('image',), extra=0, can_delete=True, labels={'FieldsName': 'CustomFieldName','OtherFieldsName': 'OtherCustomFieldName'}).
 

Комментарии:

1. Извини, но на самом деле я этого не хочу. Я хочу получить доступ к кнопке «Выбрать файл» в шаблоне

2. Я имею в виду, чтобы получить доступ к этой кнопке следующим образом: {{ форма.поле.кнопка }}

Ответ №2:

Я понял. Все, что нам нужно, это применить виджет к полю изображений:

 from django.forms.widgets import FileInput
ImageFormset = modelformset_factory(PostImages, fields=('image',), widgets= {'image': FileInput}, extra=0, can_delete=True)
 

И визуализируйте форму вот так:

 {{ formset.management_form }}
{% for f in formset %}
    {% for field in f.hidden_fields %}
        {{ field }}
    {% endfor %}
    <img src="/media/{{ f.image.value}}" style="max-width: 400px;" alt="">
    {{ f.image }}
    {{ f.DELETE }}
{% endfor %}