Создание поиска в CBV ListView - PullRequest
0 голосов
/ 21 апреля 2019

Я создаю поисковый API для моего проекта с использованием ViewView на основе классов. У меня проблема с получением значения get_queryset для поиска.

ProjectSearchListView:

class ProjectSearchListView(ListView):
    model = Project
    template_name = 'projects/user_project_list.html'
    context_object_name = 'projects'
    paginate_by = 2

    def get_queryset(self):
        query  = request.GET.get('q')
        if query:
            projects = Project.objects.filter(Q(name__contains=query) | Q(description__contains=query)).order_by('-date_created')
        else:
            projects = Project.objects.all().order_by('-date_created')

        return projects

Вот моя форма ПОИСКА:

<form class="form my-2 my-lg-0" method="GET" action="{% url 'search-project' %}"  >

                <div class="input-group">
                    <input class="form-control  " 
                        type="text" 
                        name="q"
                        value="{{ request.GET.q }}" 
                        aria-label="Search" 
                        placeholder="Search">
                    <span class="input-group-btn">
                        <button class="btn btn-outline-success my-2 my-sm-0" type="submit" value="Search">
                            Search
                        </button>
                    </span>
                </div>
            </form>

1 Ответ

1 голос
/ 21 апреля 2019

request не существует в контексте get_queryset.

Измените его на self.request.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...