Django - простой способ повторно использовать форму для отображения данных? - PullRequest
0 голосов
/ 13 декабря 2011

Я создал форму, которая имеет много полей. В другом представлении мне нужно отобразить данные, которые были введены в форму. Существует ли простой способ повторного использования формы, но на этот раз для отображения введенных данных (т. Е. Как «только для чтения»)?

Ответы [ 2 ]

2 голосов
/ 13 декабря 2011

Вы можете создать подкласс для своей формы и установить все виджеты форм с атрибутом disabled.Или установите все поля для виджета, который просто отображает текст без поля ввода (например, виджет только для администратора django).

class ReadOnlyForm(MyForm):
    def __init__(self, *args, **kwargs):
        super(ReadOnlyForm, self).__init__(*args, **kwargs)
        for field in self.fields.values():
            field.widget.attrs['disabled'] = 'true' # or replace the widget
            # with one that just returns the value in plain html

readonly_form = ReadOnlyForm(the_data)
0 голосов
/ 14 декабря 2011

Другой способ - контролировать способ отображения вашей формы:

{% for field in form %}
        {{ field.label }}: {{ field.value }}
{% endfor %}
...