【问题标题】:Django crispy-forms, BaseGenericInlineFormSet & allow_deleteDjango 脆表单、BaseGenericInlineFormSet 和 allow_delete
【发布时间】:2012-09-08 22:20:02
【问题描述】:

我在使用 django-crispy-forms 时遇到了一个问题,我无法得到答案。 我有一个相当复杂的表单布局,到目前为止,一切都非常适合 cripy-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)

name 和 url 字段根据需要使用清晰的表单呈现,但删除复选框出现在表单的末尾。而且我无法在布局中访问它。

有人知道如何解决这个问题吗?有小费吗?提前致谢!

【问题讨论】:

  • 记录一下:你总是可以做self.helper.render_unmentioned_fields = True,然后所有的“隐藏”字段也会被渲染。然后您可以检查它们的名称并明确地将它们包含在布局中。

标签: django django-crispy-forms form-layout


【解决方案1】:

愚蠢的我 - 想通了。删除字段被称为“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',
    )

【讨论】:

    猜你喜欢
    • 2020-08-21
    • 2014-02-28
    • 1970-01-01
    • 2015-12-28
    • 2013-07-01
    • 2014-12-17
    • 1970-01-01
    • 2013-02-15
    • 2013-10-28
    相关资源
    最近更新 更多