К сожалению, у нас есть несколько действительно длинных выпадающих списков, которые могут выбрать наши пользователи, и способ, которым администратор django реализовал их разрешения, действительно выглядит как хорошее решение для этого, но я не могу найти свою жизнь какие-нибудь примеры, как реализовать нечто подобное?
У кого-нибудь есть советы? (В настоящее время я использую «Select2MultipleWidget», чтобы хотя бы сделать его несколько управляемым)
Шаблон:
<script type="text/javascript" src="/static/admin/js/jquery.min.js"></script>
<script type="text/javascript" src="/static/admin/js/jquery.init.js"></script>
{{ form.media }}
<div style="position: relative">
<form method="POST">
{% csrf_token %}
<div class="form-row">
<div class="form-group col-md-6 mb-0">
{{ form.date|as_crispy_field }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 mb-0">
{{ form.priceplan|as_crispy_field }}
</div>
</div>
<div class="form-row">
<div class="form-group col-md-6 mb-0">
{{ form.account|as_crispy_field }}
</div>
</div>
<button type="submit" class="btn btn-info">Submit</button>
</form>
</div>
<link rel="stylesheet" type="text/css" href="/static/admin/css/widgets.css" />
<script type="text/javascript" src="{% url 'javascript-catalog' %}"></script>
urls.py:
#Multiple Select Widget without this non-admins won't have this rendered correctly
re_path(r'^jsi18n/$', JavaScriptCatalog.as_view(), name='javascript-catalog')
forms.py:
priceplan = forms.ModelMultipleChoiceField(queryset=WrmAutPricePlan.objects.order_by(), required=False,
widget=FilteredSelectMultiple("Price Plan", is_stacked=False))
account = forms.ModelMultipleChoiceField(queryset=WrmAutAccount.objects.all(), required=False,
widget=FilteredSelectMultiple("Account", is_stacked=False))
class Media:
css = {'all':('/admin/css/widgets.css', 'admin/css/overrides.css'),}
js = ('/admin/jquery.js','/admin/jsi18n/')