用bootstrap select替换下拉菜,并用关键字搜索替换



tl; dr; 我想用bootstrap-perect替换我的django form中的标准bootstrap下拉列表,并用关键字替换。有没有办法使{% 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+="selectpicker" data-live-search="true"替换class+="form-control dropdown"来替换Bootstrap选择。但是,这些选项仍将与标准下拉列表一样列出。为了增强搜索,我需要将data-tokens添加到每个选项,例如:

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

有没有手动渲染表格的方法?

我还找不到一个漂亮的解决方案,但是当然,没有{% 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 %}

最新更新