Я могу изменить list_filter
связанного объекта на выпадающий. Проблема в том, когда я хочу фильтровать связанные объекты связанного объекта:
class Match(Model):
team = models.ForeignKey('Team'...)
away_team = ... (doesn't matter)
class Team(Model):
country = models.ForeignKey('Country'...)
Когда я хочу отфильтровать Match
объекты по Team
, я делаю:
list_filter = ['team__country']
Для dropdown
этого фильтра я использую https://github.com/mrts/django-admin-list-filter-dropdown:
list_filter[('team',RelatedDropdownFilter)]
Когда я хочу отфильтровать Match
объектов по Country
их Team
:
list_filter = ['team__country']
Но когда я хочу сделать выпадающий список из этого фильтра, он не работает:
list_filter = [('team__country',RelatedDropdownFilter)]
Выглядит так же, как не было указано RelatedDropdownFilter
.
RelatedDropdownFilter
class RelatedDropdownFilter(RelatedFieldListFilter):
template = 'django_admin_listfilter_dropdown/dropdown_filter.html'
Template
{% load i18n %}
<script type="text/javascript">var go_from_select = function(opt) { window.location = window.location.pathname + opt };</script>
<h3>{% blocktrans with title as filter_title %} By {{ filter_title }} {% endblocktrans %}</h3>
<ul class="admin-filter-{{ title|cut:' ' }}">
{% if choices|slice:"4:" %}
<li>
<select style="width: 95%;"
onchange="go_from_select(this.options[this.selectedIndex].value)">
{% for choice in choices %}
<option{% if choice.selected %} selected="selected"{% endif %}
value="{{ choice.query_string|iriencode }}">{{ choice.display }}</option>
{% endfor %}
</select>
</li>
{% else %}
{% for choice in choices %}
<li{% if choice.selected %} class="selected"{% endif %}>
<a href="{{ choice.query_string|iriencode }}">{{ choice.display }}</a></li>
{% endfor %}
{% endif %}
</ul>
Вы знаете, что мне делать?