7

django-crispy-formsで作業しているときに、答えが得られない質問に遭遇しました。私はかなり複雑なフォームレイアウトを持っていますが、これまでのところ、すべてがクリピーフォームで非常にうまく機能します。

フォームの一部は、一般的なインラインフォームセットを使用します。これも機能していますが、私の問題は、削除チェックボックスにアクセスする方法がわからないことです(can_delete = Trueの場合) 。

対応するコードは次のようになります。

class BaseReleaseReleationFormSet(BaseGenericInlineFormSet): 

    def __init__(self, *args, **kwargs):

        self.instance = kwargs['instance']
        super(BaseReleaseReleationFormSet, self).__init__(*args, **kwargs)

        self.helper = FormHelper()
        self.helper.form_id = "id_relation_form"
        self.helper.form_class = 'form-horizontal'
        self.helper.form_method = 'post'
        self.helper.form_action = ''
        self.helper.form_tag = False

        base_layout = Row(
                Column(
                       Field('name', css_class='input-small'),
                       #Field('delete', css_class='input-small'),
                       css_class='span3'
                       ),
                Column(
                       Field('url', css_class='input-xlarge'),
                       css_class='span4'
                       ),
                css_class='row relation-row',
        )

        self.helper.add_layout(base_layout)

名前とURLフィールドは、必要に応じてクリスピーフォームでレンダリングされますが、フォームの最後に削除チェックボックスが表示されます。そして、私はレイアウトでそれにアクセスすることができません。

誰かがこの問題に対処する方法を知っていますか?任意のヒント?前もって感謝します!

4

1 に答える 1

10

愚かな私-それを理解しました..削除フィールドは「DELETE」として参照されます。(大文字に注意してください...)

    base_layout = Row(
            Column(
                   Field('name', css_class='input-small'),
                   css_class='span3'
                   ),
            Column(
                   Field('url', css_class='input-xlarge'),
                   Field('DELETE', css_class='input-small'),
                   css_class='span4'
                   ),
            css_class='row relation-row',
    )
于 2012-09-16T12:35:24.703 に答える