使用引导程序呈现的 Django FilteredSelectMultiple 小部件

jos*_*git 5 django django-forms django-admin twitter-bootstrap

我正在尝试复制FilteredSelectMultipledjango 应用程序管理员中使用的小部件。但是我的小部件呈现出非常不同的效果

我渲染的小部件

使用django-suitdjango_admin_bootstrapped的 admin 中的小部件使用bootstrap 呈现:

在管理中呈现的 Wdiget

我在 forms.py 中定义了我的小部件和媒体:

class ProcFTPForm(forms.ModelForm):
      id_archivo = forms.ModelMultipleChoiceField(queryset=Archivo_Descarga.objects.all(),required=True,widget=FilteredSelectMultiple("Archivo",is_stacked=False))
      class Media:
       css = {'all':('/admin/css/widgets.css',),}
       js = ('/admin/jquery.js','/admin/jsi18n/')

      def __init__(self, *args, **kwargs):
          super(ProcFTPForm, self).__init__(*args, **kwargs)
          self.helper = FormHelper()

      class Meta:
            model = Lista_Archivos
Run Code Online (Sandbox Code Playgroud)

在模板中,我以这种方式调用媒体文件:

{{ form.media }}
Run Code Online (Sandbox Code Playgroud)

如何使FilteredSelectMultiple小部件看起来与管理员中的小部件相似。换句话说,我如何使用bootstrap呈现这个小部件。

我正在使用django-crispy-forms并且其他小部件除了FilteredSelectMultiple小部件外都使用引导程序呈现

任何建议

提前致谢

jul*_*sar 3

django-admin-bootstrapped指定覆盖 django admin 默认值的样式,例如文件overrides.css。小部件FilteredSelectMultiple使用 css 类.selector,您的页面应应用overrides.css 第 39 行至 119 行声明的css 选择器,因此您需要将其样式添加到您的页面,方法是更改Media​​表单中的类:

class Media:
   css = {'all':('/admin/css/widgets.css', 'admin/css/overrides.css'),}
   js = ('/admin/jquery.js','/admin/jsi18n/')
Run Code Online (Sandbox Code Playgroud)

或者直接包含它的模板:

<link href="{{ STATIC_URL }}admin/css/overrides.css" type="text/css" rel="stylesheet" />
Run Code Online (Sandbox Code Playgroud)

希望这能解决您的问题