Невозможно получить совпадающие данные в фильтре поиска в Django

Я хотел применить фильтр поиска в Django, который покажет соответствующую строку таблицы в HTML. Я сохранил данные, которые поступают из конечной точки API, в базе данных и создал несколько полей, на основе которых он будет фильтровать данные API в таблице.

Вместо поиска совпадающего значения добавляется еще один столбец с искомым значением. Например: Если я ищу "vendorname" как Pepsi, это должно отразить строку таблицы, содержащую Pepsi, а не создавать еще один столбец со значением Pepsi.

Я не знаю, где я ошибаюсь. У меня много столбцов из API и 6filter, просто я добавил несколько только здесь. Заранее спасибо

Я создал две базы данных здесь одна для фильтра другая для данных API:

models.py:

       //filter
       class Userbase(models.Model):
            Vendor_Name = models.CharField(max_length=255,  null=True)
            Region = MultiSelectField(choices=CHOICES)
             Area = MultiSelectField(choices=AREACHOICES)
    
     //api data
     class invoiceapi(models.Model):
           Vendor_Name = models.CharField(max_length=155, null=True)
           area = models.CharField(max_length=155, null=True)
           country = models.CharField(max_length=155, null=True)

views.py:

     def homeview(request):
          userb = Userbase.objects.all()
          table_data= requests.get('http://127.0.0.1:1500/api/').json() 


      if request.method == 'POST':
    
        userb = Userbase()
        userb.Area =  request.POST.getlist('Area')
        userb.country =  request.POST.getlist('country')
        userb.Vendor_Name =  request.POST.get('Vendor_Name')
        userb.save()

     #  api data saving in db
      for new_data in  table_data:
   
          data = {
            'area': new_data['area'],
            'country': new_data['country'],
            'VendorName': new_data['VendorName'],
              
            }
  
        user = invoiceapi.objects.create(**data)
        user.save()
     
     //search filter
      if request.method == 'POST':
     
        finder = request.POST['Vendor_Name']
        invoiceuser = invoiceapi.objects.filter(PBK_Desc__iexact=finder)
        print(invoiceuser)
        print(finder)
        return render(request, 'home.html',  
                                      {'userb':userb,'table_data':table_data,'finder':finder})

      return render(request, 'home.html', {'userb':userb,'table_data':table_data})

html:

    <form action=" " method="POST" autocomplete="off">
        {% csrf_token %}
        <div class="row">
          <div class="row" id="row_id">    
          <br>

          <div style="margin-left: 19px; font-size: 17px;">Payment Term</div>
            <div class="row" id="id_row">
              <input type="text" name="Vendor_Name" maxlength="255" class="form-control mb-3"
               style="margin-left: 30px; " placeholder="Vendor_Name" id="Vendor_Name" required=""">
            </div>  
            <br>
            <br>

          <input type="submit" value="Apply" id="btn_submit" style=" width:90px; height:45px; margin-left: 40px; margin-bottom: 30px;"
            class="btn btn-success btn" >
     
          <input type="reset" value="Reset" id="btn_submit" style=" width:90px; height:45px;margin-left: 65px; margin-bottom: 30px;"
            class="btn btn-success btn">
          </div>
        </form>
      </div>
    </div>


    <div class='container-l' id='table-wrapper' style="height:330px;width:100.5%; ">
      <div id='container-table'style="height: 1050px;">

        {% if userb %}

        <table class="table table-striped border datatable" id='table_id'>

          <thead>
            <thead id="tablehead">
              <tr>  
                <th> Area </th>
                <th> Country </th>
                <th> VendorName </th>
              </tr>
            </thead>
          <tbody>
            {% for list in table_data %}
            <tr>   
              <td>{{list.area}}</td>
              <td>{{list.country}}</td>  
              <td>{{finder}}</td>
            </tr>
            {% endfor %}
   </tbody>
   </table>
   </body>
   </div> 
{% endif %}
Вернуться на верх