Skip to content

Commit e009aba

Browse files
committed
Cherry-picked SergioDzul/django-searchable-select@fd462a6 - Fix multiple items display when many=False (closes #12)
1 parent a421e4f commit e009aba

File tree

3 files changed

+17
-5
lines changed

3 files changed

+17
-5
lines changed

searchableselect/static/searchableselect/main.js

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,11 @@
110110
var $chip = $('<div/>').addClass('chip minimized').html(data.name).append(
111111
$('<input/>').attr('type', 'hidden').attr('name', $select.attr('data-name')).attr('value', data.pk)
112112
);
113-
$chips.append($chip);
113+
if($select.attr('data-many') == '1') {
114+
$chips.append($chip);
115+
} else {
116+
$chips.html($chip);
117+
}
114118
$select.typeahead('val', '');
115119
window.setTimeout(function () {
116120
$chip.removeClass('minimized');

searchableselect/templates/searchableselect/select.html

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,17 @@
11
{% load i18n %}
22

3-
<input type="text" id="{{ field_id }}" data-url="{% url 'searchable-select-filter' %}" data-name="{{ field_name }}" data-model="{{ model }}" data-search-field="{{ search_field }}" data-limit="{{ limit }}" class="searchable-select" placeholder="{% trans 'Start typing' %}" />
3+
<input
4+
type="text"
5+
id="{{ field_id }}"
6+
data-url="{% url 'searchable-select-filter' %}"
7+
data-name="{{ field_name }}"
8+
data-model="{{ model }}"
9+
data-search-field="{{ search_field }}"
10+
data-limit="{{ limit }}"
11+
data-many="{% if many %}1{% else %}0{% endif %}"
12+
class="searchable-select"
13+
placeholder="{% trans 'Start typing' %}"
14+
/>
415

516
<hr />
617

searchableselect/widgets.py

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -46,16 +46,13 @@ def render(self, name, value, attrs=None, choices=()):
4646
if not isinstance(value, (list, tuple)):
4747
# This is a ForeignKey field. We must allow only one item.
4848
value = [value]
49-
else:
50-
self.many = False
5149

5250
values = get_model(self.model).objects.filter(pk__in=value)
5351
try:
5452
final_attrs = self.build_attrs(attrs, name=name)
5553
except TypeError as e:
5654
# Fallback for django 1.10+
5755
final_attrs = self.build_attrs(attrs, extra_attrs={'name': name})
58-
5956

6057
return render_to_string('searchableselect/select.html', dict(
6158
field_id=final_attrs['id'],

0 commit comments

Comments
 (0)