自定义Django表单字段

时间:2013-12-24 07:59:04

标签: html django forms

我很清楚之前已经提出相关问题,但我仍然发现它们不足以解决以下问题 -

需要使用django.forms构建表单。所有字段标签右对齐的表单。

目前正在发生的事情是标签与中心对齐或选项位于标签下方,如下所示:

喜欢吃什么?

  • 很好

我想要的是

 Liked the food:   

                 o Great
                 o Okay
                 o Bad
           Dish: 
       Beverage:
 Membership ID*:

大多数窗口小部件自定义似乎不会影响字段LABEL对齐

更新[在adityasdarma1回答之后]

我总是可以完全跳过django表单并用HTML编写所有内容 但是我希望在HTML中编写尽可能少的代码,同时实现所需的对齐。

我期望django允许我在全球范围内设置这样的对齐。

如果我可以访问描述标签和输入GUI元素并用HTML控制格式,即使这样也没问题。

我最接近的是跟随。任何人都可以建议我对右对齐标签需要对以下代码进行哪些更改。

{% for field in form %}
    <div>
    <label for="{{ field.label }}">{{ field.label_tag }}
    {% if field.field.required %}<span class="special_class">*</span>{% endif %}</label>

    {{ field }}
    </div>
{% endfor %}

3 个答案:

答案 0 :(得分:3)

您必须手动渲染表单并提供适当的类。阅读documentation

答案 1 :(得分:1)

使用tr和td完成了这个技巧(下面分享了代码片段)

<table >
    {% for field in form %}
    <tbody>
    <tr>
      <td>
        <label for="{{ field.label }}" style="display:inline-block;vertical-align:middle">{{ field.label_tag }}</label>
      </td>
      <td>
        {{ field }}
      </td>
    </tr>
    {% endfor %}
    </tbody>
  </table>

答案 2 :(得分:0)

Django提供了一些自定义表单布局的选项。查看rendering forms manually上的官方Django文档并使用form templates