2011-06-20 7 views
1
class BaseForm(forms.Form): 
    def as_custom_table(self): 
     "Returns this form rendered as HTML <tr>s -- excluding the <table></table>." 
     return self._html_output(
      normal_row = u'<tr%(html_class_attr)s><td class="label_col">%(label)s</td><td class="field_col">%(field)s%(help_text)s</td></tr>', 
      error_row = u'<tr><td colspan="2" class="error">%s</td></tr>', 
      row_ender = u'</td></tr>', 
      help_text_html = u'<br />%s', 
      errors_on_separate_row = True) 

をするフォームを構築するために取得ジャンゴ私は重い物を持ち上げるを行うと、私はそれをレンダリングする方法でフォームをレンダリングするためのDjangoを受けることができるかどうかを確認しようとしています。Djangoのフォーム - あなたが

ここでの問題は、1つまたは2つのフィールドがわずかに異なってレンダリングする必要があることです。 「2つの列にまたがる必要がある利用規約に同意することを確認してください」チェックボックスなど。

また、エラー配置などのいくつかの変更は、変更する必要があります。

エラーの配置を変更するために_html_outputメソッドをオーバーライドすることはできますが、別のレンダリングメソッドを使用する個々のフィールドを取得する方法について教えてください。

私は最終的には、テンプレート内に手動でフォームhtmlを構築する必要があると思いますが、Djangoがいくつかのマイナーな変更を加えてどれくらいのことができるのか不思議です。

答えて

2

suggested methodは、このようなテンプレートを使用するようになります。

<form action="/contact/" method="post"> 
    {% for field in form %} 
     <div class="fieldWrapper"> 
      {{ field.errors }} 
      {{ field.label_tag }}: {{ field }} 
     </div> 
    {% endfor %} 
    <p><input type="submit" value="Send message" /></p> 
</form> 

あなたは条件付きで{{ if field.my_property }}を使用して特定のフィールドを上書きすることができます。

+0

これを実際のdjangoテンプレートrenering engine / – user307927

関連する問題