Функция 'doclist' не имеет 'filter' memberpylint (нет члена) - PullRequest
2 голосов
/ 23 апреля 2020

Выдает ошибку, что функция 'doclist' не имеет 'filter' memberpylint (no-member), и, пожалуйста, сообщите, если мой код правильный, связанный с поиском

Это мой файл Model.py

class Document(models.Model):
    name = models.CharField(max_length=200)
    url = models.URLField(max_length=250)
    types = models.CharField(max_length=200)
    category = models.CharField(max_length=200)
    desc = models.TextField()
    upload = models.FileField(upload_to='documents')
    objects = models.Manager()

    class Meta:
        verbose_name_plural = "documents"

    def __str__(self):
        return self.name

Это мой файл View.py

def doclist(request):
    documents = Document.objects.filter()
    search_query = request.GET.get('q')

    if search_query :
        doclist = doclist.filter(
           Q(name__icontains = search_query)
        )
        print(search_query)

    return render(request, 'doclist.html', {
        'documents' : documents
    })

Это моя форма поиска

<form  method="GET" action="/doclist/">
        {% csrf_token %}
      <div class="search-box">
        <input type="text" class="search-txt" placeholder="Search Here" name="q" value="{{request.GET.q}}">
        <button class="search-btn" type="submit" name="action"><i class="fas fa-search"></i></button>

      </form>

1 Ответ

0 голосов
/ 23 апреля 2020

Имя переменной documents, а не doclist. doclist - это имя функции, оно разрешается ссылкой на функцию просмотра. Таким образом, вы должны изменить doclist = doclist.filter(..) на documents = documents.filter(..):

def doclist(request):
    documents = Document.objects.all()
    search_query = request.GET.get('q')
    if search_query :
        <b>documents</b> = <b>documents</b>.filter(
            Q(name__icontains = search_query)
        )

    return render(request, 'doclist.html', {
        'documents' : documents
    })
...