как правильно сгенерировать HTML для модели формы Django - PullRequest
0 голосов
/ 04 ноября 2010

Мне нужно поместить div вокруг группы полей формы в шаблоне django. Самый простой способ сделать это -

MyForm (). As_table ()

скопируйте и вставьте группу полей с соответствующим div. Единственная проблема заключается в том, что этот подход дает сбой, когда возникают ошибки при проверке формы, поскольку {{form.fieldname.errors}} нигде не упоминается.

Какие-нибудь лучшие идеи или готовые инструменты, которые избавили бы меня от необходимости делать это вручную каждый раз?

вот ответ, если кому-то это нужно

def generate_object_template(object):
    from string import Template
    for field in object._meta.fields:
            t = Template(""" <label>{{ form.$fieldname.label }}{% if form.$fieldname.is_required %}*{% endif %}</label>
             {{ form.$fieldname }}
             {% if form.$fieldname.errors %} {{ form.$fieldname.errors }}{% endif %}""").substitute(fieldname=field.attname)                                  
            print t

1 Ответ

1 голос
/ 04 ноября 2010

Когда вам нужно настроить форму в Django, вы можете сделать следующее:

 ...
 <label>{{ form.myfield.label }}{% if form.myfield.is_required %}*{% endif %}</label>
 {{ form.myfield }}
 {% if form.myfield.errors %} {{ form.myfield.errors }}{% endif %}

<label>{{ form.myfield3.label }}{% if form.myfield3.is_required %}*{% endif %}</label>
 {{ form.myfield3 }}
 {% if form.myfield3.errors %} {{ form.myfield3.errors }}{% endif %}

 <label>{{ form.myfield2.label }}{% if form.myfield2.is_required %}*{% endif %}</label>
 {{ form.myfield2 }}
 {% if form.myfield2.errors %} {{ form.myfield2.errors }}{% endif %}
...

При такой настройке вы можете настроить свою форму, добавив div в нужное вам место, и при этом продолжить проверку.

См. http://docs.djangoproject.com/en/dev/topics/forms/#customizing-the-form-template

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