我正在使用django内置的authenticater,遇到了2个问题:
尽管这样放置登录修饰符:
class sales_home(View):
@method_decorator(login_required)
def get(self, request, *args, **kwargs):
return render(request, 'sales/home.html')
我仍然可以通过将其键入URL来访问主视图。登录修饰符仅在清除浏览器缓存时才有效,这在生产环境中不是解决方案。
内置身份验证器的第二个问题是request.user.id返回None。
我目前正在尝试根据用户自己的输入显示数据。 这是我的API调用:
class ChartData(APIView):
authentication_classes = []
permission_classes = []
def get(self, request, format=None):
current_user = request.user
sales_rev_data = Sales_project.objects.values_list('sales_project_est_rev', flat=True).filter(sales_project_status = 'p4').filter(sales_extras = current_user.id)
labels = Sales_project.objects.values_list('sales_project_closing_date', flat=True).filter(sales_project_status = 'p4')
data = {
"labels1": labels,
"default1": sales_rev_data,
"labels2": labels,
"default2": sales_rev_data,
}
return Response(data)
因为current_user.id
返回None,所以我无法访问与用户相对应的数据。
我们将非常感谢您的帮助!