我想知道如何使用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>
答案 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之间你可以接近。