Методы модели Django(фильтр по дате)

Уже несколько недель бьюсь над этой проблемой, и мне начинает казаться, что я никогда ее не решу.

У меня есть эти методы в моей модели.

 def sfget_totals(self):
        return self.agent_sale.filter(Date_created__range=["2022-03-01","2022-04-02"]).count()
 def sfget_confirmed(self):
        return self.agent_sale.filter(State="Confirmed",Date_created__range=["2022-03-01","2022-04-02"]).count()
 def sfget_debi(self):
        return self.agent_sale.filter(AcknowledgeQA=True,State="Confirmed",Debi_status="Accepted",Date_created__range=["2022-03-01","2022-04-02"]).count()
 def sfget_requested(self):
        return self.agent_sale.filter(Debi_status="Requested",Date_created__range=["2022-03-01","2022-04-02"]).count()
 def sfget_cancelled(self):
        return self.agent_sale.filter(State="Cancelled",Date_created__range=["2022-03-01","2022-04-02"]).count()
 def sfget_pending(self):
        return self.agent_sale.filter(State="Pending",Date_created__range=["2022-03-01","2022-04-02"]).count()

В приведенном выше примере я вставляю даты вручную (это работает и возвращает правильный запрос). Проблема в том, что я до сих пор не знаю, как заставить пользователя вставлять эти даты через сайт.

Это мое мнение.

def Team_stats(request,pk):
    sd = request.GET.get("from")
    ed = request.GET.get("to")
    start_date = datetime.datetime.strptime(sd, "%Y-%m-%d").date()
    end_date = datetime.datetime.strptime(ed, "%Y-%m-%d").date()
    if start_date == None or end_date == None:
        sales_agent = SalesAgent.objects.filter(Team_leader=pk)
        return render(request,"Sales/Team_detail_page.html",{"sales_agent":sales_agent})
    else:
        sales_agent = SalesAgent.objects.filter(Team_leader=pk,agent_sale__Date_created__range=[start_date,end_date]).distinct()
        print(type(start_date))
        return render(request,"Sales/Team_detail_page.html",{"sales_agent":sales_agent})


Это мой шаблон. Мне нужно отобразить всех агентов под лидером команды и определенным полем другой модели. Например, State, Date_Created, Debi_status.

<form method="GET" action=".">
  <div class="form-row">
    <div class="form-group col-md-6">
      <label for="inputEmail4">Start date</label>
      <input type="date" format='%Y-%m-%d' name="from" class="form-control"  id="inputEmail4" placeholder="Start Date">
    </div>
    <div class="form-group col-md-6">
      <label for="inputEmail4">End date</label>
      <input type="date" format='%Y-%m-%d' name="to" class="form-control" id="inputEmail4" placeholder="End date">
    </div>
  </div>
  <button type="submit" class="btn btn-primary">Search</button>
</form>
<!-- <p>THERE SHOULD BE A GRAPH IN HERE FOR THE AGENTS STATS</p> -->
<br>
<br>
<div class="container">
  <table class="table table-dark table-striped table-bordered">
      <thead>
        <tr>
          <th scope="col">#</th>
          <th scope="col">Agent Name</th>
          <th scope="col">Total sales</th>
          <th scope="col">Total debis</th>
          <th scope="col">Total confirmed</th>
          <th scope="col">Total requested</th>
          <th scope="col">Total pending</th>
          <th scope="col">Total cancelled</th>      
        </tr>
      </thead>
      {% for entry in sales_agent %}
      <tbody>
<td>{{forloop.counter}}</td>
<td>{{entry.SA_name}}</td>
<td>{{entry.sfget_totals}}</td>
<td>{{ entry.sfget_debi}}</td>
<td>{{ entry.sfget_confirmed}}</td>
<td>{{ entry.sfget_requested}}</td>
<td>{{ entry.sfget_cancelled}}</td>
<td>{{ entry.sfget_pending}}</td>

{%endfor%}  
</table>
<div>
  <a type="button" class="btn btn-dark btn-m" href="{%url 'Sales:salesdash'%}">Go back</a>
{%endblock%}

Если вы пытаетесь отправить форму в то же представление, то ваш атрибут action в форме неверен.

Удалите действие=".":

<form method="GET">

Or

<form method="GET" action="">
Вернуться на верх