Получение поискового запроса и разбивки на страницы одновременно в Django в запросе.ПОЛУЧИТЬ

#django #django-models #django-views #django-class-based-views #django-pagination

Вопрос:

app/views.py:

 class HomeView(ListView):  model=Movement  template_name='home.html'  paginate_by = 10  def get_context_data(self, **kwargs):  context = super(ListView, self).get_context_data(**kwargs)   mov_objs = Movement.objects.all()  paginator = MyPaginator(mov_objs, self.paginate_by)  page = self.request.GET.get('page', paginator.num_pages)  try:  page_obj = paginator.page(page)  except PageNotAnInteger:  page_obj = paginator.page(1)  except EmptyPage:  page_obj = paginator.page(paginator.num_pages)   context['page_obj'] = page_obj  ids=list(page_obj.object_list.values_list('id', flat=True))  sale_id = str(Sale.objects.filter(stored_ids=sorted(ids))).split('(')[1].split(')')[0]  if self.request.method == 'GET':  inv_no = self.request.GET.get('inv_no','0')  context['inv_no']=inv_no  else:  inv_no = '0'  sale_data=sale_id ',' inv_no  context['sale_data']=sale_data  return context  def TallyExport(request,sale_data):  t = loader.get_template('template.xml')  [sale_id , inv_no] = [int(item) for item in sale_data.split(',')]  mov_obj_ids = Sale.objects.filter(id=sale_id).values_list('stored_ids')[0][0]  mov_obj = Movement.objects.filter(id__in=mov_obj_ids)  response = HttpResponse(t.render({'mov_obj':mov_obj,'inv_no':inv_no}), content_type="application/xml")  response['Content-Disposition'] = 'attachment; filename=file.xml'  return response  

Шаблон django:

 lt;centergt;  lt;h1gt;Title Pagelt;/h1gt; lt;/centergt; lt;h4gt;  lt;div class="pagination"gt;  lt;span class="step-links"gt;  {% if page_obj.has_previous %}  lt;a href="?{% if inv_no %}inv_no={{inv_no}}amp;{% endif %}page=1"gt;amp;laquo; firstlt;/agt;  lt;a href="?{% if inv_no %}inv_no={{inv_no}}amp;{% endif %}page={{ page_obj.previous_page_number }}"gt;previouslt;/agt;  {% endif %}  lt;span class="current"gt;  Sale {{ page_obj.number }} of {{ page_obj.paginator.num_pages }}.  lt;/spangt;  {% if page_obj.has_next %}  lt;a href="?{% if inv_no %}inv_no={{inv_no}}amp;{% endif %}page={{ page_obj.next_page_number }}"gt;nextlt;/agt;  lt;a href="?{% if inv_no %}inv_no={{inv_no}}amp;{% endif %}page={{ page_obj.paginator.num_pages }}"gt;last  amp;raquo;lt;/agt;  {% endif %}  lt;/spangt;  lt;/divgt; lt;/h4gt; lt;form method="GET"gt;  lt;input type="number" id="inv_no" name="inv_no" placeholder="Invoice No"gt;  lt;input type="submit" value="Save"gt; lt;/formgt; {% if 'inv_no' in request.GET %} lt;a href="{% url 'tally' sale_data %}"gt;Export To Tallylt;/agt; {% endif %} lt;ulgt;  {% for post in page_obj %}  lt;ligt;lt;a href="{% url 'mov_details' post.pk %}"gt;{{post.Party}} - {{post.ACofParty}}lt;br /gt;  {{post.PartyRef}}-{{post.VehicleNo}}-{{post.ContainerNo}}-{{post.Size}}'-{{post.Status}}lt;/agt;-lt;a  href="{% url 'update_mov' post.pk %}"gt;(Edit)lt;/agt;  -lt;a href="{% url 'delete_mov' post.pk %}"gt;(Delete)lt;/agt;lt;/ligt;  {% endfor %} lt;/ulgt;   

В этом коде конкретные данные модели-1(Перемещение) отображаются путем отображения идентификаторов, хранящихся в поле Списка Модели-2(Продажа). После этого пользователь заполняет поле под названием номер счета-фактуры. Затем при нажатии кнопки в систему загружается XML-файл, который использует идентификатор модели-1 и номер счета-фактуры для заполнения определенных данных. Однако всякий раз, когда номер счета заполняется, страница перенаправляется на домашнюю страницу по умолчанию, на которой отображается последний экземпляр модели-1. Как я могу убедиться, что параметры страницы также отображаются в ссылке get URL. Примечательно отметить, что мне удалось получить номер счета-фактуры в URL-адресе get с помощью django, если-иначе, если нажата предыдущая или следующая.