【问题标题】:Replace dropdown with bootstrap-select with keyword search用关键字搜索将下拉菜单替换为引导选择
【发布时间】:2019-03-15 22:59:13
【问题描述】:

TL;DR; 我想用bootstrap-select with keywords 替换我的Django 表单中的标准引导下拉菜单。有没有办法让{% render_field %} 在每个选项中添加data-tokens=


我有一个页面,用户可以在其中标记照片中的人。对应的表格如下:

class AddFaceForm(forms.ModelForm):
    class Meta:
        model = Face
        fields = ('person', ...)

模板形式如下:

<form id="face-add-form" action="{% url 'photos:faces' photo.name %}" method="post" class="form-inline" hidden>
{% csrf_token %}
{% render_field form.person class+="form-control dropdown" title="Person"%}
...

这会将人员选择器呈现为标准下拉列表,选项列为

<option value="139">XXX</option>
<option value="121">YYY</option>
...

我可以通过将class+="form-control dropdown" 替换为class+="selectpicker" data-live-search="true" 来将其替换为引导选择。但是,这些选项仍将与标准下拉列表一样列出。为了增强搜索,我需要在每个选项中添加data-tokens,例如:

<option value="139" data-tokens="nickname-XXX">XXX</option>
<option value="121" data-tokens="nickname-YYY">YYY</option>

有没有办法在不手动渲染表单的情况下做到这一点?

【问题讨论】:

    标签: django-forms django-templates bootstrap-select


    【解决方案1】:

    我还没有找到一个很好的解决方案,但当然有一个没有{% render_field %}的解决方法:

    <select name="person" title="Person" id="id_person" class="selectpicker" data-live-search="true" required>
        <option value="None"></option>
        {% for p in people %}
            <option value="{{ p.id }}" data-tokens="{{ p.all_names }}">{{ p.full_name }}</option>
        {% endfor %}
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-31
      • 1970-01-01
      • 1970-01-01
      • 2019-04-19
      • 2014-01-27
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多