Параметры для FilterView из перенаправления шаблона
Я прочитал все похожие Q&As, но не могу понять, как добиться желаемого.
В моем файле base.html есть выпадающее меню, основанное на годах обучения:
<div class="dropdown">
<a href="#" class="d-flex align-items-center text-white text-decoration-none dropdown-toggle" data-bs-toggle="dropdown" aria-expanded="false">
<svg class="bi pe-none me-2" width="16" height="16"><use xlink:href="#archive"/></svg>
<strong>Select Year</strong>
</a>
<ul class="dropdown-menu dropdown-menu-dark text-small shadow">
{% for year in years %}
<li><a class="dropdown-item"href="{% url 'administration.home_selected' year %}">{{year}}</a></li>
{% endfor %}
</ul>
</div>
administration.home_selected - это представление, основанное на функции и принимающее параметр year, чтобы показать нужные данные, относящиеся к этому учебному году:
url.py
path(
"home_selected/<int:year>",
views.home_selected,
name="administration.home_selected",
),
Как мне воспроизвести ту же функциональность, когда навигационная вкладка в файле home_selected.html выбрана и относится к FilterView:
path(
"learners/<int:year>",
views.FilteredLearnerListView.as_view(),
name="administration.learners",
),
В настоящее время представление кодируется для отображения только данных текущего года, но я хотел бы иметь возможность сделать то же самое, что я сделал с представлением на основе функций, чтобы показать правильные данные в зависимости от года, выбранного из base.html
views.py
class FilteredLearnerListView(SingleTableMixin, FilterView):
table_class = LearnerTable
model = Learner
context_object_name = "learner_list"
current = AcademicYear.objects.filter(is_current=True).get()
contracts_list = Contract.objects.filter(academic_year=current).values_list(
"id", flat=True
)
contracts_list = list(contracts_list)
contracts = Contract.objects.filter(academic_year=current).values()
groups = Group.objects.filter(contractId__in=contracts_list)
queryset = Learner.objects.filter(groupId__in=groups)
template_name = "learner_list.html"
filterset_class = LearnerFilter
filters.py
class LearnerFilter(FilterSet):
class Meta:
model = Learner
fields = {"surname": ["iexact"], "groupId": ["exact"]}
Пожалуйста, простите за ошибки новичков. Я очень хочу научиться.