我试图将Django小部件FilteredSelectMultiple实现为非管理员形式,尽管它显示,但加载时在控制台中出现JavaScript错误。错误是
TypeError:node.tagName未定义SelectFilter2.js:11:9
如果我从列表中选择项目,则会在控制台中收到以下JavaScript错误
TypeError:缓存未定义SelectBox.js:76:29
这是我的Django表单
class PlaylistForm(forms.ModelForm):
class Meta:
model = Playlist
exclude = ['id']
widgets = {
'owner' : forms.HiddenInput(),
'name' : forms.TextInput (
attrs={
'class' : 'form-control',
'placeholder' : _('Playlist Title'),
'label' : _('Playlist Title')}),
'projects' : FilteredSelectMultiple ('Items', is_stacked=True, attrs = {'class' : 'form-control'})
}
class Media:
css = {
'all': (os.path.join(settings.BASE_DIR, '/static/admin/css/widgets.css'),),
}
js = (
'/admin/jsi18n/',
)
这是视图
class CreatePlaylistView (LoginRequiredMixin, CreateView):
model = Playlist
form_class = PlaylistForm
这是模板的补充内容
<script type="text/javascript" src="{% static 'admin/js/vendor/jquery/jquery.min.js' %}"></script>
<script type="text/javascript" src="{% static 'admin/js/jquery.init.js' %}"></script>
<script type="text/javascript" src="{% url 'admin:jsi18n' %}"></script>
{{ form.media }}
根据其他帖子,我包括了urls.py
path('jsi18n/', JavaScriptCatalog.as_view(), name='javascript-catalog'),
我怎么了?
编辑
我已经进行了更多研究,并且从Firefox到Chrome浏览器中出现了不同的浏览器错误。Firefox在上面的帖子中。
初始Chrome错误为
TypeError: jQuery.easing[jQuery.easing.def] is not a function
SyntaxError: Unexpected token <
SyntaxError: Unexpected token <
ReferenceError: interpolate is not defined
我在模板中添加了<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/jquery-easing/1.4.1/jquery.easing.min.js"></script>
,但仍然收到其余的控制台错误
答案 0 :(得分:4)
刚刚意识到了这个问题。问题是我没有将{{ form }}
包裹在<form>
标记中,因为我只是在进行测试的时候