Django cripsy form with a custom template for button

smdncfj3  于 2023-10-21  发布在  Go
关注(0)|答案(1)|浏览(174)

编辑:没有重复,但this question上的回答解决了我的问题。

我能够将self.helper.form_tag = False添加到helper中,这允许我添加自己的表单标记和按钮。
我的表单提交需要一个<button>元素,而不是Django和django-crispy-form的布局助手Submit()输入。如果我使用{{ my_form|crispy }},我可以做到这一点。
但是,使用此方法时,表单中的所有其他布局元素都将被忽略。如果我切换回{% crispy my_form %},我会得到布局,但我的自定义HTML按钮会被忽略。
在使用布局帮助器的时候,有没有办法有一个自定义的HTML提交按钮?

**Note:**如果我在crispy标签下面添加HTML按钮,按钮会呈现在表单之外,并且我无法遍历模板中的表单字段,因为Django表单中的布局非常复杂。

aydmsdu9

aydmsdu91#

尝试

from crispy_forms import layout, helper

class FormName(forms.Form):
    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = helper.FormHelper()
        self.helper.layout = layout.Layout(
             layout.layout.HTML("""<input type="submit" class="btn btn-primary" value="Submit" name="submit">""",css_class="")
        )

HTML格式

{% load crispy_forms_tags %}

<form action="..." method="post" >
   {% comment %} No need to define 'csrf_token' {% endcomment %}
   {% crispy form %}
</form>

相关问题