在 Django 中使用 Chosen.js
Using Chosen.js with Django
您好,我正在尝试将 chosen.js 实施到我的 Django 项目中,到目前为止效果很好。我只有一个问题,我无法解决。我有一个模型,其中 "language" 是 ChardField
。我想让用户选择一种以上的语言,所以我尝试使用 chosen Multiple。由于一个 Charfield 只能保存一个值,所以我使用了 Django Multiselect。现在 Chosen.js 不再工作了,我不知道该怎么办。
型号:
from multiselectfield import MultiSelectField
class UserProfile(models.Model):
language = MultiSelectField(verbose_name=_(u"Content Language"),
max_length=40, choices=settings.LANGUAGES,default='en')`
表格:
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields=[
'language',
.....
]
模板:
{% load widget_tweaks %}
{% csrf_token %}
<span>Content language {{ form.language|add_class:"chosen-select" }}</span>
所以问题是如何将正常的 chosen.js 输入字段添加到多选字段(使用 Django)?我知道可以在表单中添加多个字段,但这会弄乱我的漏洞代码。
我通过以下方式实现了所选的 multi select:
表格
class select_language(ModelForm):
#Get data for choice boxes
language_results = language.objects.all()
select_language = forms.ModelMultipleChoiceField(
queryset=language_results,
widget = forms.SelectMultiple(attrs={
'placeholder': "Choose the users(s)",
'class': 'chosen-select',
'multiple tabindex': '4',
}),
)
模板:
....
{% load static %}
<link rel="stylesheet" href="{% static 'chosen.css' %}">
<link rel="stylesheet" href="{% static 'prism.css' %}">
....
{{ select_language.select_language }}
<script type="text/javascript" src="{% static 'chosen.jquery.js' %}"></script>
<script type="text/javascript" src="{% static 'docsupport/prism.js' %}"></script>
<script type="text/javascript" src="{% static 'docsupport/init.js' %}"></script>
当然,您需要更新静态文件的位置。希望这是一个好的开始方向。
您好,我正在尝试将 chosen.js 实施到我的 Django 项目中,到目前为止效果很好。我只有一个问题,我无法解决。我有一个模型,其中 "language" 是 ChardField
。我想让用户选择一种以上的语言,所以我尝试使用 chosen Multiple。由于一个 Charfield 只能保存一个值,所以我使用了 Django Multiselect。现在 Chosen.js 不再工作了,我不知道该怎么办。
型号:
from multiselectfield import MultiSelectField
class UserProfile(models.Model):
language = MultiSelectField(verbose_name=_(u"Content Language"),
max_length=40, choices=settings.LANGUAGES,default='en')`
表格:
class UserProfileForm(forms.ModelForm):
class Meta:
model = UserProfile
fields=[
'language',
.....
]
模板:
{% load widget_tweaks %}
{% csrf_token %}
<span>Content language {{ form.language|add_class:"chosen-select" }}</span>
所以问题是如何将正常的 chosen.js 输入字段添加到多选字段(使用 Django)?我知道可以在表单中添加多个字段,但这会弄乱我的漏洞代码。
我通过以下方式实现了所选的 multi select:
表格
class select_language(ModelForm):
#Get data for choice boxes
language_results = language.objects.all()
select_language = forms.ModelMultipleChoiceField(
queryset=language_results,
widget = forms.SelectMultiple(attrs={
'placeholder': "Choose the users(s)",
'class': 'chosen-select',
'multiple tabindex': '4',
}),
)
模板:
....
{% load static %}
<link rel="stylesheet" href="{% static 'chosen.css' %}">
<link rel="stylesheet" href="{% static 'prism.css' %}">
....
{{ select_language.select_language }}
<script type="text/javascript" src="{% static 'chosen.jquery.js' %}"></script>
<script type="text/javascript" src="{% static 'docsupport/prism.js' %}"></script>
<script type="text/javascript" src="{% static 'docsupport/init.js' %}"></script>
当然,您需要更新静态文件的位置。希望这是一个好的开始方向。