Django Python HTMX - Пагинация не работает на нескольких таблицах в одном шаблоне
Я пытаюсь построить поиск, который показывает четыре таблицы с четырьмя различными моделями. На этих нескольких таблицах у меня возникла проблема с бесконечной прокруткой. Вывод не обращает внимания на переменную "paginate_by=5", поэтому он просто показывает каждый результат. Кроме того, пагинация использует только первый элемент get_template_names. Поэтому когда я прокручиваю вниз, он заполняет таблицы с порядковым номером.
Мой views.py:
**class searchView(ListView):
ordering = ['-id']
template_name = 'search_items.html'
paginate_by = 5
model = Rooms
def get_template_names(self):
if self.request.htmx:
return ['single-rows/search_orders_single_row.html', 'single-rows/search_products_single_row.html', 'single-rows/search_rooms_single_row.html', 'single-rows/search_suppliers_single_row.html']
return 'search_items.html'
def get_context_data(self, **kwargs):
searchedItem = self.request.GET.get('searchedItem',default="")
context = super(searchView, self).get_context_data(**kwargs)
context['all_orders'] = Orders.objects.all()
context['all_products'] = Products.objects.all()
context['all_suppliers'] = Suppliers.objects.all()
context['rooms'] = Rooms.objects.filter(Q(room__contains=searchedItem) | Q(cabinetNumber__contains=searchedItem) | Q(shelf__contains=searchedItem)) #filtered_rooms get the results from the search in the database
context['products'] = Products.objects.filter(Q(designation__contains=searchedItem) | Q(category__contains=searchedItem))
context['orders'] = Orders.objects.filter(Q(product__contains=searchedItem) | Q(supplier__contains=searchedItem))
context['suppliers'] = Suppliers.objects.filter(Q(s_name__contains = searchedItem))
context['searchedItem'] = searchedItem
return context**
мой поиск-шаблон:
Включения одинаковы, вот один из примеров:
{% for instance in products %}
{% if forloop.last and page_obj.has_next %}
<tr hx-get="{% url 'search-item' %}?page={{ page_obj.number|add:1 }}" hx-trigger="intersect once" hx-swap="afterend" hx-target="this">
{% else %}
<tr>
{% endif %}
<td>{{instance.category}}</td>
<td><a href="{% url 'detail-product' instance.id %}" id="articleRef">{{instance.designation}}</a></td>
<td>Fehlt noch</td>
<td>
<div class="edit-and-delete-button">
<center><a href="{% url 'delete-product' instance.id %}" id="deleteButton">Löschen</a></center>
<center><a href="{% url 'edit-product' instance.id %}" id="editButton">Bearbeiten</a></center>
</div>
</td>
</tr>
{% endfor %}
Я думаю, что проблема в логике представления, но я не знаю, как ее решить. Я нашел несколько ответов, в которых говорится, что я должен предоставить все данные в одной таблице, но я хочу иметь 4 таблицы с разными элементами. Я надеюсь, что это возможно решить. Спасибо за каждый ответ.