【问题标题】:Using Chosen.js with Django在 Django 中使用 Chosen.js
【发布时间】:2017-05-13 18:23:21
【问题描述】:

您好,我正在尝试将 selected.js 实现到我的 Django 项目中,到目前为止效果很好。我只有一个问题无法解决。我有一个模型,其中“语言”是ChardField。我想让用户选择一种以上的语言,所以我尝试使用选择的多种语言。由于 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>

所以问题是如何将正常的 selected.js 输入字段添加到多选字段(使用 Django)?我知道可以在表单中添加多个字段,但这会弄乱我的漏洞代码。

【问题讨论】:

    标签: django multi-select jquery-chosen


    【解决方案1】:

    我通过以下方式实现了所选的多选:

    表格

    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>
    

    当然,您需要更新静态文件的位置。希望这是一个好的开始方向。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-28
      • 1970-01-01
      • 2012-05-10
      相关资源
      最近更新 更多