Я использую конструктор форм трясогузки, чтобы Разработчики сайтов могут расширять возможности создания собственного типа FormPage со своими собственными шаблонами для конкретных сайтов.
Я хочу отображать все страницы форм на родительской странице; сюда входят все поля дочерней страницы, такие как заголовок, а также полная дочерняя форма.
В идеале кнопка отправки также должна действовать в зависимости от формы.
Вот что я пробовал:
<ul>
{% for child in page.get_children %}
<li>
<h5 class=>{{ child.specific.title }}</h5>
<div>
{{ child.specific.intro|richtext }}
<div id="form-holder">
<form action="{% child.pageurl page %}" method="POST">
{% csrf_token %}
{{ child.specific.form.as_p }}
<input type="submit">
</form>
</div><!-- contact-form-holder-->
</div>
</li>
{% endfor %}
</ul>
Мои модели форм более или менее соответствуют конструктору форм документация с несколькими дополнительными полями:
class FormField(AbstractFormField):
db_table = 'form_field'
page = ParentalKey('FormPage', related_name='form_fields')
class FormPage(AbstractEmailForm):
db_table = 'form_page'
header = models.CharField(max_length=250)
intro = RichTextField(blank=True)
thank_you_text = RichTextField(blank=True)
content_panels = AbstractEmailForm.content_panels + [
FormSubmissionsPanel(),
FieldPanel('intro', classname="full"),
FieldPanel('header'),
InlinePanel('form_fields', label="Form fields"),
FieldPanel('thank_you_text', classname="full"),
MultiFieldPanel([
FieldRowPanel([
FieldPanel('from_address', classname="col6"),
FieldPanel('to_address', classname="col6"),
]),
FieldPanel('subject'),
], "Email"),
]
Я обнаружил, что могу отображать поля дочерней страницы, такие как заголовок и введение, если использую метод .specific
.
Однако я не могу получить какую-либо форму для рендеринга; с тегом .specific
или без него.
Любая помощь будет очень кстати!