如何使用django自定义表单

时间:2014-02-19 00:47:05

标签: django twitter-bootstrap django-forms

如何在bootstrap中自定义外键选择?

例如,

class SolarSystem(models.Model):
      name = models.CharField(...)
      description = models.CharField(...)

class Planet(models.Model):
      name = models.CharField(...)
      solarsystem = models.ForeignKey(SolarSystem)

我想建立一个可以选择太阳系的行星形态。 solarsystem应该是bootstrap select(即class =“form-control”)。有时选项可能有一些我想要显示的描述。

即一些伪代码:

<select class="form-control">
    {% for option in planet.solarsystem: %}

         <option>
              {{ option.name }}
              {{ if option.description != null: }}
                  <span class="select-description">{{option.description}}</span>
         </option>
    {% endfor %}
</select>

有没有办法直接在模板中执行此操作,而无需专门为solarsystem外键定义自己的窗口小部件?

2 个答案:

答案 0 :(得分:0)

我建议使用crispy-forms,因为它是在Bootstrap模板中呈现表单的更完整的解决方案。

使用crispy表单,您只需要使用简单的Django表单和几行模板代码,如:

{% load crispy_forms_tags %}

<form method="post" class="form-horizontal" role="form">
    {{ my_form|crispy }}
</form>

答案 1 :(得分:0)

像这样更改<option>

<option>
    {{ option.name }}
    {% if option.description %}
        <span class="select-description">{{ option.description }}</span>
    {% endif %}
</option>