Можно ли настроить HTML, сгенерированный для django.forms.Form? - PullRequest
1 голос
/ 15 ноября 2011

Цель : первым Form в моем мастере форм WizardView передается начальное значение, которое изменит поля, отображаемые в сгенерированном HTML.

Могу ли я изменить вывод (возможно, через пользовательский шаблон) с помощью jQuery, чтобы скрыть определенные поля?

1 Ответ

2 голосов
/ 15 ноября 2011

Вы можете изменить форму, используя javascript, включив файлы javascript во внутренний класс ваших форм 'Media'

class MyForm(form.ModelForm):
    ...

    class Media:
        # Paths relative to STATIC_URL
        js = ("js/file.js", "js/file2.js",)

Но, на мой взгляд, это может быть немного хакерским

В качестве альтернативы , чтобы изменить HTML-код определенного поля, необходимо создать собственный виджет для конкретных полей, которые вы хотите редактировать:

https://docs.djangoproject.com/en/dev/ref/forms/widgets/

Наконец , если вам нужно динамически добавлять или удалять поля, я думаю, что лучший способ сделать это - использовать в формах init function:

class MyForm(form.ModelForm):
    def __init__(self, *args, **kwargs):
        super(MyForm, self).__init__(*args, **kwargs)
        if self.fields['example_field_name'].initial == "some_value":
            # do something ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...