将Django FilteredSelectMulitple实现为none admin形式

时间:2019-05-10 09:59:55

标签: javascript django django-widget

我试图将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>,但仍然收到其余的控制台错误

1 个答案:

答案 0 :(得分:4)

刚刚意识到了这个问题。问题是我没有将{{ form }}包裹在<form>标记中,因为我只是在进行测试的时候