У меня есть проект Django, в котором у меня есть раскрывающийся список выбора, например:
Но я хочу что-то вроде этого:
Моя форма <select>
выглядит так: (после проверки в инструментах разработчика)
<select class="form-control" data-parsley-required="true" id="id_org_role" name="org_role" required="">
<option value="A">Administrator</option>
<option value="M" selected="selected">Member</option>
</select>
Если не select2, есть ли другая библиотека jquery, которая может помочь мне в этом?
Я пытался следовать документации Select2 и считаю, что если этим способом (для шаблонов) , мы можем расположить изображение рядом с текстом параметра, тогда должен быть способ также разместить «текстовое описание» под каждым параметром. Но я не знаю, как этого можно добиться. Все, что я пытался сделать до сих пор, это:
var org_role = function(roles){
if (!roles.id) {
return roles.text;
}
return $(
'<strong>' + roles.text + '</strong>' + '<br/>'
'<span>' + "some description" + '</span>'
);
};
$("#id_org_role").select2({
templateResult: org_role,
});
Но это не работает. Кроме того, даже если это так, оно будет отображать одно и то же описание для всех параметров. Но очевидно, что он должен быть другим.
Моя форма Django внутри шаблона выглядит так:
<form method="POST" action="" class="org-member-edit" id='organization_permissions' data-parsley-validate>
{% csrf_token %}
<div class="form-group member-role{% if org_role_form.org_role.errors %} has-error{% endif %}">
<label class="control-label" for="{{ org_role_form.org_role.id_for_label }}">{% trans "Role" %}</label>
{% render_field org_role_form.org_role class+="form-control" data-parsley-required="true" %}
<div class="error-block">{{ org_role_form.org_role.errors }}</div>
</div>
</form>
в 5-й строке выше, то есть render_field org_role_form.org_role
в теге шаблона, org_role
принимает значения из следующей формы: (примечание: render_field
, потому что я использую Django-tweaks-wideget)
class EditOrganizationMemberForm(SuperUserCheck, forms.Form):
org_role = forms.ChoiceField(choices=ADMIN_CHOICES)
который берет поля выбора из другого файла selections.py следующим образом:
ADMIN_CHOICES = (
('A', _('Administrator')),
('M', _('Member'))
)
Как я могу этого добиться? (разные описания для разных вариантов) Пожалуйста, помогите. Я застрял в этом с часов.