我想根据 db django 中的当前用户数据返回搜索结果



这是我的视图.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')

搜索正在工作,但它返回一个与查询匹配的查询集,而与用户无关。我希望它在查询集上返回,该查询集与数据库中当前登录的用户数据相匹配。

尝试

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

Django文档HttpRequest.user.

Django使用会话和中间件来挂接身份验证系统转换为请求对象

它们在每个表示当前用户的请求。如果当前用户没有登录后,此属性将设置为AnonymousUser的实例,否则它将是User的一个实例。

相关内容

最新更新