我有一个ModelForm,其中包括来自django-select2的ModelSelect2Widget
https://github.com/applegrew/django-select2
从此处遵循文档:
https://django-select2.readthedocs.io/en/latest/django_select2.html#django_select2.forms.ModelSelect2Widget
表格
class RentalForm(forms.ModelForm):
name = forms.ChoiceField(
widget=ModelSelect2Widget(
model=ldap_data,
search_fields=['user__icontains']
)
)
date_start = forms.CharField(label="Datum Ausleihe", help_text="", widget=forms.TextInput(attrs={'class': 'form-control form-control-sm', 'placeholder': '01.01.2019' }))
date_end = forms.CharField(label="Datum Rückgabe", help_text="", widget=forms.TextInput(attrs={'class': 'form-control form-control-sm', 'placeholder': '01.01.2019' }))
class Meta:
model = Rental
fields = ['device', 'name', 'date_start', 'date_end',]
models.py
class ldap_data(models.Model):
user = models.CharField(max_length=1024)
def __str__(self):
return self.user
ldap_data包含大约100个条目。
我认为一切都很好,但是在呈现的模板中,
name
下拉列表中没有可用数据。Google Chrome浏览器中的控制台日志显示:
select2.min.js:1 Uncaught ReferenceError: jQuery is not defined
at select2.min.js:1
at select2.min.js:1
(anonymous) @ select2.min.js:1
(anonymous) @ select2.min.js:1
django_select2.js:9 Uncaught ReferenceError: jQuery is not defined
at django_select2.js:9
at django_select2.js:11
最佳答案
您是否遵循getting started section中的所有步骤?
在项目设置中将django_select2添加到INSTALLED_APPS中。
如果使用任何ModelWidgets,则将django_select添加到您的urlconf中:
url(r'^select2/', include('django_select2.urls')),
将CSS添加到Django模板的头部:
{{ form.media.css }}
将JavaScript添加到Django模板主体的末尾:
{{ form.media.js }}
而且,似乎存在模块本身未提供的外部依赖项:
外部依赖
jQuery版本2
包,因为预计在大多数情况下这已经
能得到的。
关于python - ModelForm和ModelSelect2Widget(django-select2),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57820837/