使用 django-autocomplete-light 和 bootstrap-datepicker-plus 小部件创建表单时出现问题
Problem when creating a form with both django-autocomplet-light and and bootstrap-datepicker-plus widgets
我正在尝试创建一个使用两个不同小部件的表单:
- some fields are using django-automplete-light ModelSelect2 widget
- another field is using bootstrap_datepicker_plus DatePickerInput widget
但是,我无法使它们同时工作:当我仅使用 DatePickerInput 创建表单时,日历显示正确,但是当我使用 ModelSelect2 添加字段时,日历不再弹出。
有人知道是什么原因导致这个问题以及如何解决吗?
在 settings.py 中,我为 BOOTSTRAP4 设置 'include_jquery' = True
以下是表单代码的摘录:
from django.forms import ModelForm
from dal import autocomplete
from bootstrap_datepicker_plus import DatePickerInput
class CreateWhoForm(ModelForm):
class Meta:
model = m.Who
fields = (
'why',
'how',
'begins'
)
widgets = {
# when 'why' and 'how' are commented, DatePickerInput() calendar widget shows correctly
# when they are present, the calendar widget doesn't show anymore
'why': autocomplete.ModelSelect2(
url='core:why-autocomplete'
),
'how': autocomplete.ModelSelect2(
url='core:how-autocomplete'
),
'begins': DatePickerInput()
}
还有一些 html 使用:
<pre>
{% load static %}
{% load bootstrap4 %}
{% bootstrap_css %}
{% bootstrap_javascript jquery='full' %}
{{ form.media }}
{% for field in form %}
<div class="form-group{% if field.errors %} has-error{% endif %}">
<label for="{{ field.id_for_label }}">{{ field.label }}</label>
{% render_field field class="form-control" placeholder=field.help_text %}
{% for error in field.errors %}
<p class="help-block">{{ error }}</p>
{% endfor %}
</div>
{% endfor %}
</pre>
我遇到了同样的问题,这似乎是多次初始化 JQuery 的问题。由于您在 JQuery 中加载 Bootstrap 并且在 JQuery 中加载自动完成轻载,因此似乎存在冲突。删除 static/automplete_light/jquery.init.js 似乎可以解决问题。
我正在尝试创建一个使用两个不同小部件的表单:
- some fields are using django-automplete-light ModelSelect2 widget
- another field is using bootstrap_datepicker_plus DatePickerInput widget
但是,我无法使它们同时工作:当我仅使用 DatePickerInput 创建表单时,日历显示正确,但是当我使用 ModelSelect2 添加字段时,日历不再弹出。
有人知道是什么原因导致这个问题以及如何解决吗?
在 settings.py 中,我为 BOOTSTRAP4 设置 'include_jquery' = True 以下是表单代码的摘录:
from django.forms import ModelForm
from dal import autocomplete
from bootstrap_datepicker_plus import DatePickerInput
class CreateWhoForm(ModelForm):
class Meta:
model = m.Who
fields = (
'why',
'how',
'begins'
)
widgets = {
# when 'why' and 'how' are commented, DatePickerInput() calendar widget shows correctly
# when they are present, the calendar widget doesn't show anymore
'why': autocomplete.ModelSelect2(
url='core:why-autocomplete'
),
'how': autocomplete.ModelSelect2(
url='core:how-autocomplete'
),
'begins': DatePickerInput()
}
还有一些 html 使用:
<pre>
{% load static %}
{% load bootstrap4 %}
{% bootstrap_css %}
{% bootstrap_javascript jquery='full' %}
{{ form.media }}
{% for field in form %}
<div class="form-group{% if field.errors %} has-error{% endif %}">
<label for="{{ field.id_for_label }}">{{ field.label }}</label>
{% render_field field class="form-control" placeholder=field.help_text %}
{% for error in field.errors %}
<p class="help-block">{{ error }}</p>
{% endfor %}
</div>
{% endfor %}
</pre>
我遇到了同样的问题,这似乎是多次初始化 JQuery 的问题。由于您在 JQuery 中加载 Bootstrap 并且在 JQuery 中加载自动完成轻载,因此似乎存在冲突。删除 static/automplete_light/jquery.init.js 似乎可以解决问题。