Я хочу вернуть результат поиска на основе данных текущего пользователя в db django - PullRequest
0 голосов
/ 24 февраля 2020

Это мой view.py

def searchposts(request):
    if request.method == 'GET':
        query= request.GET.get('q')

        submitbutton= request.GET.get('submit')

        if query is not None:
            lookups= Q(suspect_name__icontains=query) | Q(complaint_name__icontains=query)

            results= CreateRecord.objects.filter(lookups).distinct()

            context={'results': results,
                     'submitbutton': submitbutton}

            return render(request, 'search.html', context)

        else:
            return render(request, 'search.html')

    else:
        return render(request, 'search.html')

Поиск работает, но он возвращает набор запросов, который соответствует запросу независимо от пользователя. Я хочу, чтобы он возвращал набор запросов, соответствующий текущим зарегистрированным данным пользователя в БД.

1 Ответ

0 голосов
/ 24 февраля 2020

Попробуйте

results= CreateRecord.objects.filter(user=request.user).filter(lookups).distinct()

Django документация HttpRequest.user .

Django использует сеансы и промежуточное ПО для подключения аутентификации система в объектах запроса.

Они предоставляют атрибут request.user для каждого запроса, который представляет текущего пользователя. Если текущий пользователь не вошел в систему, этот атрибут будет установлен на экземпляр AnonymousUser, в противном случае это будет экземпляр User.

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