Пользовательские классы кнопок в хрустящих формах django

Технический вопрос стилизации кнопок в django crispy forms. Я хотел бы применить свой собственный класс, не используя основной класс кнопки.

class MyForm(Form):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.layout = Layout(
            Fields("field_1"),
            Fields("field_2"),
            Submit('submit', u'On', css_class='own-css-class'),
        )

В основном, я решил эту проблему, добавив self.helper.form_tag = False и вставив код кнопки непосредственно в html-шаблон. Кроме того, я удалил кнопку submit из макета.

class MyForm(Form):

    def __init__(self, *args, **kwargs):
        super().__init__(*args, **kwargs)
        self.helper = FormHelper()
        self.helper.layout = Layout(
            Fields("field_1"),
            Fields("field_2"),
        )
        self.helper.form_tag = False

Правильно ли это решение и будет ли оно совместимо в долгосрочной перспективе?

Я бы рекомендовал вам создать собственную пользовательскую кнопку и использовать ее при создании layout.

class CustomButton(BaseInput)
    input_type = 'submit'
    field_classes = 'my custom css'
Вернуться на верх