将 Django FilteredSelectMulitple 实施到 none 管理表单中
Implementing Django FilteredSelectMulitple into none admin form
我正在尝试将 Django 小部件 FilteredSelectMultiple 实现到非管理表单中,尽管它显示,但在加载时我在控制台中收到 JavaScript 错误。错误是
TypeError: node.tagName is undefined SelectFilter2.js:11:9
如果我然后 select 列表中的项目,我会在控制台中收到以下 JavaScript 错误
TypeError: cache is undefined 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 基于其他 posts
path('jsi18n/', JavaScriptCatalog.as_view(), name='javascript-catalog'),
我错了什么?
编辑
我进一步查看了这个,我在 Firefox 的 Chrome 中遇到了不同的浏览器错误。Firefox 在上面的 post 中。
初始 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>
添加到模板,但仍然出现剩余的控制台错误
刚刚意识到这个问题。问题是我没有将 {{ form }}
包裹在 <form>
标签中,因为我只是在测试
我正在尝试将 Django 小部件 FilteredSelectMultiple 实现到非管理表单中,尽管它显示,但在加载时我在控制台中收到 JavaScript 错误。错误是
TypeError: node.tagName is undefined SelectFilter2.js:11:9
如果我然后 select 列表中的项目,我会在控制台中收到以下 JavaScript 错误
TypeError: cache is undefined 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 基于其他 posts
path('jsi18n/', JavaScriptCatalog.as_view(), name='javascript-catalog'),
我错了什么?
编辑
我进一步查看了这个,我在 Firefox 的 Chrome 中遇到了不同的浏览器错误。Firefox 在上面的 post 中。
初始 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>
添加到模板,但仍然出现剩余的控制台错误
刚刚意识到这个问题。问题是我没有将 {{ form }}
包裹在 <form>
标签中,因为我只是在测试