内置身份验证器的Django不起作用

时间:2019-12-24 05:38:33

标签: python django django-rest-framework

我正在使用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,所以我无法访问与用户相对应的数据。

我们将非常感谢您的帮助!

0 个答案:

没有答案