我正在使用FilteredSelectMultiple小部件,但它看起来不像管理员中的小部件。
Javascript控制台节目
Uncaught TypeError: undefined is not a function SelectFilter2.js:100
我的表单(导入的小部件:django.contrib.admin.widgets.FilteredSelectMultiple)
class GroupPermissionForm(forms.ModelForm):
permissions = forms.ModelMultipleChoiceField(
queryset=Permission.objects.all(),
widget=FilteredSelectMultiple("verbose name", is_stacked=False)
)
class Meta:
model = Group
fields = ('permissions', )
模板
{{ group_perm_form.media }}
<form>
{{ group_perm_form.permissions }}
</form>
(我也试过了{{group_perm_form}},但它没有用,当我用脆弱的表格渲染表格时我很惊讶我可以过滤选择输入,但它仍然被打破了)
我的javascript文件的顺序如下:
jquery
django.js
form.media
这是btw的结果
修改:工作模板如下所示
<script type="text/javascript" src="/static/admin/js/jquery.min.js"></script>
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
{{ group_perm_form.media }}
<form>
{{ group_perm_form.permissions }}
</form>
<link rel="stylesheet" type="text/css" href="/static/admin/css/widgets.css" />
答案 0 :(得分:3)
admin JS小部件都依赖于JSI18N脚本。将其添加到模板标题中:
<script type="text/javascript" src="{% url 'admin:jsi18n' %}"></script>
编辑:看起来你还需要来自static / admin / js的jquery.init.js,因为jQuery被命名空间以避免冲突并且不会自动传递给SelectFilter2脚本