自定义Django表单+内联错误消息

时间:2009-09-09 18:08:28

标签: django forms

我想知道如何使用Django的自动表单生成......

<form action="/contact/" method="POST">
    {{ form.as_p }}
    <input type="submit" value="Submit" />
</form>

要实现以下输出(请注意包装div中表单和错误类中间的自定义字段)。

<form action="/contact/" method="POST">

    <div class="input error">
        <label for="id_subject">E-mail subject:</label>
        <span>Error Message</span>
    </div>

    <div class="input error">
        <label for="id_message">Your message:</label>
        <span>Error Message</span>
    </div>

    <!-- CUSTOM CONTAINER -->
    <div class="custom-container">
        <h2>Custom Content</h2>
    </div>

    <div class="input error">
        <label for="id_sender">Your email address:</label>
        <span>Error Message</span>
    </div>

    <div class="input error">
        <label for="id_cc_myself">CC yourself?</label>
        <span>Error Message</span>
    </div>

    <div><input type="submit" value="Send message" /></div>
</form>

2 个答案:

答案 0 :(得分:7)

Form.as_*方法几乎只是脚手架。只要您想要以一致的方式列出字段,您就不应该再使用它们了。

使用有关reusable form templates的文档中的一些逻辑,您应该能够实现您想要的目标。

答案 1 :(得分:4)

你可以结帐django-uni-form,http://github.com/pydanny/django-uni-form它会让你更接近你试图用包装div做的事情。

我同意SmileyChris的说法,你很难找到一种通用的方便方法,可以让你做到这么多。

但是,在django-uni-form和明智地使用widgets之间你可以接近。