Как повторно использовать формы Django - PullRequest
0 голосов
/ 15 февраля 2019

Я хочу повторно использовать формы Django в следующем сценарии:

  1. Сделать все поля формы доступными только для чтения при отображении
  2. Используйте эту же форму для получения данных при редактировании

Я использовал приведенную ниже функцию, чтобы сделать поле доступным только для чтения при отображении данных:

class form1(modelForm):
    fields...
    def get_form(self, *args, **kwargs):
        super(form1, self).__init__(*args, **kwargs)
        for key in self.fields.keys():
            self.fields[key].widget.attrs['readonly'] = True

Я также пытался использовать функцию init , ново время редактирования я не могу использовать «form1», Django по-прежнему отображает форму только для чтения.

Небольшая помощь по ее достижению будет принята с благодарностью.

1 Ответ

0 голосов
/ 15 февраля 2019

Решение выглядит следующим образом

form_to_edit(modelForm):
    fields
    .
    .

form_to_display(form_to_edit):
  def __init__(self, *args, **kwargs):
    super(form_to_edit, self).__init__(*args, **kwargs)
    for key in self.fields.keys():
        self.fields[key].widget.attrs['readonly'] = True

Всякий раз, когда форму нужно просто отобразить, выведите «form_to_display», а для редактирования выведите «form_to_edit»,

Код в form_to_display создает /инициализирует form_to_edit с полями только для чтения

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...