Я хочу передать список в качестве параметра набора запросов в Django ListView. Я знаю, что вы можете сделать это, перезаписав метод get_queryset
, но в идеале я бы хотел этого избежать. Причина в том, что я ссылаюсь на другое представление и у меня уже есть нужный мне набор запросов, поэтому я не хочу запускать один и тот же запрос дважды.
В настоящее время я связываюсь со своим представлением следующим образом:
<a href="{url 'lab_work:project_list_ongoing' %}?projects={{active}}">{{active|length}</a>
active
- это предварительно заполненный список, который я хочу использовать в качестве набора запросов. Мое представление выглядит следующим образом:
class ProjectListOngoing(ListView):
template_name = "<name of my template>"
model = Project
context_object_name = "projects"
paginate_by = 10
def dispatch(self, request, *args, **kwargs):
self.projects = request.GET.get('projects', [])
return super().dispatch(request, *args, **kwargs)
def get_queryset(self):
return self.projects
Похоже, что это заполнение правильного набора запросов, однако по какой-то причине первичные ключи пусты.
В моем шаблоне есть следующее:
{% for project in projects %}
<li><a href="{% url 'lab_work:project_detail' pk=project.pk %}"></a></li>
{% endfor %}
И я получаю следующую ошибку:
Reverse for 'project_detail' with keyword arguments '{'pk': ''}' not found. 1 pattern(s) tried: ['project/(?P<pk>\\d+)/$']