django: 管理后台小部件CSS?
我在我的表单中使用了管理员的 filteredselectmultiple
小部件:
students = forms.ModelMultipleChoiceField(queryset=Student.objects.all(),widget=FilteredSelectMultiple("Subjects",is_stacked=False))
但是,这个小部件在我的页面上没有像管理员页面那样的样式。
我在我的模板中包含了 form.media
,但我发现我的页面没有包含任何 CSS 文件。
我的问题是:我需要在我的模板中包含哪个 CSS 文件?我每使用一个 Django 小部件都需要添加这些文件吗?
3 个回答
0
0
我不知道答案是什么,但我知道我该怎么找。首先,我会把那个小部件放到管理后台(也许你已经有个例子了),然后在浏览器里打开它所在的页面。接着,我会打开Chrome的开发者工具,或者在Firefox里用Firebug,使用元素检查器。选择那个小部件的HTML元素,然后在CSS面板里查看哪些CSS文件影响了它的布局。你还会看到哪些规则在起作用——很可能你已经有了需要的文件,但它需要放在特定的容器里才能正确显示。
2
我也不知道为什么这个必需的css文件默认没有包含在小部件的媒体里,因为form.media应该是把这个表单中用到的小部件的所有媒体文件都收集起来的……我自己也试了一下,结果遇到了同样的问题。
你需要包含的css文件似乎是widgets.css。把这个加到我的表单里后,它就能正常工作了:
class Media:
css = {
'all': ['{0}css/widgets.css'.format(settings.ADMIN_MEDIA_PREFIX), ]
}
如果这个回答了你的问题,请告诉我!我刚来SO,所以任何反馈都很欢迎:)