クリスピーフォームを使用している間は何か簡単にしたいです。ユーザーがスタッフグループに所属している場合にのみ、Fieldsetを表示する必要があります。これは、簡単にこのような標準的なテンプレートで解決されていますクリスピーフォームを使用してフィールドセットを条件付きで表示する
{% if user.is_staff %} show extra stuff {% endif %}
たぶん私は手動で何かを逃したが、私はuser.is_staff場合、私はちょうど「{%のようなテンプレートタグを挿入することができますどのように表示されません%} "をクリスピーフォームにレイアウトします。
self.helper.layout = Layout(
Fieldset(
'Section One',
'name',
'description',
),
Djangotag('{% if user.is_staff %}'),
Fieldset(
'Conditional Fieldset',
'field1',
'field2',
),
Djangotag('{% endif %}'),
Fieldset(
'More Details',
'detail1',
'detail2',
),
)
クリスピーフォームでこれを行う簡単な方法があります:私は私の問題を解決するために架空の「Djangotag」を使うところ、以下のようなものをすることができれば、私のユースケースのための理想的なのでしょうか?
注:私はすでにself.user = kwargs.pop('user')
アプローチを実装し、それは非常にエレガントではないですが、私はまだ良い何かを探しています。
私はまた、ifステートメント用に作成された単純なテンプレートを試してみましたが、これを試しました。HTML("{% include 'helpers/is_staff.html' %}"),
しかし、レンダリングプロセスは失敗します。
これは私が実装し始めた正確なアプローチです。そして、フィールドとウィジェットなどを追加することで、私は周りを猿で囲む必要があることに気付きました.Djangoフレームワークは、このような使い方を非常にエレガントに解決します。このハックは醜く高速になり、動作しますが、受け入れられないようです。 – eezis