Добавление некоторой информации в форму в django, не используя шаблон? - PullRequest
0 голосов
/ 22 апреля 2011

Мне нужно добавить некоторую простую информацию / html в начало моего класса форм, но я не могу добавить этот текст в шаблон. Я получил код, похожий на:

from django import forms

class ContactForm1(forms.Form):
    subject = forms.CharField(max_length=100)
    sender = forms.EmailField()

Но когда я отправляю эту форму в шаблон, я хотел бы отобразить простой HTML-код в верхней части формы, перед полями формы. Причина, по которой я не могу добавить информацию в шаблон, заключается в том, что форма извлекается динамически, связанной с запросом, затем передается в шаблон, и самый простой способ, который я смог найти, - это добавить дополнительную информацию в саму форму. Примерно так:

class ContactForm1(forms.Form):
    info = InfoField("""<h1>This is the header</h1>
                        and then some more html""")
    subject = forms.CharField(max_length=100)
    sender = forms.EmailField()

И html в информационном поле будет отображаться раньше других полей. Я просто не мог обернуть голову, как создать подкласс django.forms.Field и отобразить свой собственный html.

Есть мысли?

1 Ответ

1 голос
/ 22 апреля 2011

Как сказал Торстен, лучше всего использовать шаблон.

Если вы не хотите использовать его, вы можете взглянуть на создание пользовательских виджетов

http://docs.djangoproject.com/en/dev/ref/forms/fields/#creating-custom-fields

Уже написано много пользовательских виджетов, поэтому вы легко можете найти исходный код и изучить, как это сделать.

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