Пользовательские классы кнопок в хрустящих формах 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'