Хрустящая форма: отображение поля в виде HTML

У меня есть форма, которая содержит различные поля, некоторые из них должны быть доступны только для чтения, но вместо использования поля "только для чтения" я хотел бы переделать их как HTML.

Есть тег HTML, который работает как шаблон, но я не могу понять, как (и если) я могу его использовать.

Предположим, что мое поле называется text, что я должен использовать для его отображения?

HTML("This is the text {{text}}") это не работает :(

)

Или я должен создать новый шаблон для нового поля в oreder, чтобы отобразить его так, как я хочу?

Я не использовал crispy form раньше, но я пытаюсь помочь вам. В обычной форме вы можете использовать disabled=True в связанном поле формы. Это автоматически добавит в шаблон возможность только для чтения и дополнительную валидацию, чтобы избежать изменения поля.

Согласно docs:

Булев аргумент disabled при установке в True отключает поле формы с помощью HTML-атрибута disabled так, что оно не будет редактироваться пользователями. Даже если пользователь изменит значение поля, переданное на сервер, оно будет проигнорировано в пользу значения из исходных данных формы.

.

Так что это будет гораздо безопаснее для вашей формы.

Пример:

class ExampleForm(forms.Form):
    readonly_field = forms.CharField(disabled = True)

Затем в вашем HTML шаблоне:

<form method = "POST">
    {% csrf_token %}
    {{ form }}
    <input type = "submit" value = "Submit">
</form>

Думаю, с этим можно справиться, добавив дополнительные теги шаблона crispy-form.

Вернуться на верх