2

Django でフォームを作成するために django-crispy-forms を使用するようにいくつかの推奨事項を受け取りました。

ドキュメントを数時間探していましたが、フォーム フィールドを 2 つの列に分散する方法がわかりません。

ここでこの例を見ると

        helper = FormHelper()
        helper.form_class = 'form-horizontal'
        helper.layout = Layout(
            Field('text_input', css_class='input-xlarge'),
            Field('textarea', rows="3", css_class='input-xlarge'),
            'radio_buttons',
            ...
        )

出現シーケンスをどのように設定できるかがわかります。しかし、レイアウトはプレーンと同じ{{ form.as_p }}です。ここで何かが欠けているといいのですが、そうでなければ、このアドオンを使用してもほとんど役に立ちませんか?

4

2 に答える 2

3

ブートストラップ css ファイルが含まれていることを確認し、アプリケーションを に追加しINSTALLED_APPSます。

{% load crispy_forms_tags %}次に、テンプレートで実行する django-crispy-forms タグを含め、最後{% crispy form %}に例のようにする必要があります。リンクした例に示されているすべて。これにより、水平なフォームが生成されます。

に近いものはありませんas_p。これはカスタマイズ可能なレイアウトであり、エラーが発生しやすいテンプレートを記述する必要はありません。これらのスライドが役立つ場合があります。

于 2012-07-03T10:47:00.387 に答える
0

私はdjango-crispy-forms簡単に使用しただけで、フォーム ヘルパーでは使用しませんでした。以下は mako-templates を使用して記述されていますが、django テンプレートに簡単に置き換えることができるはずです。

<form class="form-horizontal">
    <fieldset>
    %if form.non_field_errors():
        <div class='alert alert-error'>${form.non_field_errors()}</div>
    %endif
        ${form.as_crispy}
    <div class="form-actions">
        <button type="submit" class="btn btn-primary" id="some-id"> 
            Find
        </button>
        <button type="reset" class="btn" id="clear-filter">
            Clear
        </button>
    </div>
    </fieldset>
</form>

これは、twitter-bootstrap でフォームをレンダリングするためのほとんどのデフォルトの方法であるフィールドセットを使用してフォームをレンダリングしました。デフォルトのレンダリングが機能しない場合にのみ、ヘルパーを使用してください(私は思う..)。私は持っていません

于 2012-07-03T05:08:15.563 に答える