【问题标题】:Django Crispy forms not using bootstrap 4 to build AccordionDjango Crispy 表单不使用 bootstrap 4 构建 Accordion
【发布时间】:2019-04-27 23:12:42
【问题描述】:

我正在使用 django 的crispy-forms 应用程序来引导表单。我使用 bootstrap 4 时只使用 {form|crispy} 输出没有问题,但现在我想添加一个手风琴,crispy 正在为 bootstrap 3 而不是 4 生成 HTML。

我已经在 settings.py 中加入了这一行:

CRISPY_TEMPLATE_PACK = 'bootstrap4'

我的 view.py 看起来像这样:

from app.models import Model1

from crispy_forms.helper import FormHelper
from crispy_forms.layout import Layout, Fieldset, ButtonHolder, Submit
from crispy_forms.bootstrap import Accordion, AccordionGroup

class Model1Create(CreateView):
   model = Model1
   fields = ['field1', 'field2', 'field3']
   template_name = "model1_form.html"

   def get_form(self, form_class=None):
       form = super().get_form(form_class)
       form.helper = FormHelper()
       form.helper.add_input(Submit('submit', 'Creates', css_class='btn-primary'))

       form.helper.layout = Layout(
            Accordion(
                AccordionGroup('First Group',
                    'field1'
                ),
                AccordionGroup('Second Group',
                    'field2',
                    'field3'
                )
            ))

       return form

任何想法为什么会发生这种情况?或者我应该怎么做才能强制引导 4 html?

提前感谢您的帮助!

【问题讨论】:

    标签: python django bootstrap-4 django-crispy-forms


    【解决方案1】:

    我也在努力实现一个手风琴组。我需要克服的第一个障碍(我现在陷入了一个新问题:))是确保:

    “Accordion & AccordionGroup:AccordionGroup 呈现一个手风琴窗格,不同的组需要包装在 Accordion 中以实现自动 javascript 功能,您还需要在静态文件中包含 bootstrap-tab.js: "

    我在文档中看到了这一行,您可以在此处找到:

    https://django-crispy-forms.readthedocs.io/en/latest/layouts.html?highlight=accordion

    这有帮助吗?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-08-04
      • 2012-04-16
      • 2015-05-13
      • 2014-05-19
      • 1970-01-01
      • 2020-04-03
      • 2021-01-16
      • 1970-01-01
      相关资源
      最近更新 更多