使用Django的ListView和get_queryset安全吗?

时间:2019-03-14 17:16:01

标签: django

我正在使用基于类的ListView和get_queryset填充分配给组织的对象的列表。该代码运行良好,并且限制用户仅查看属于其组织的事务。我的问题是在创建这样的列表时是否存在任何安全漏洞?具体来说,我应该以其他方式填充列表吗?

matters.views:

class MatterListView(LoginRequiredMixin, ListView):
    model = Matters
    template_name = 'matters/matters.html'
    context_object_name = 'matters'
    ordering = ['-start_date']
    def get_queryset(self):
        return self.model.objects.filter(organization=self.request.user.organization)

1 个答案:

答案 0 :(得分:0)

最好练习使用基于类的列表视图。您也可以将基于功能的视图用于列表。 但是,与基于函数的视图相比,使用基于类的视图有很多好处,例如可以轻松扩展,重用代码等基于类的视图。

安全问题在很大程度上由Django本身解决。因此,您不必为此感到惊慌。

如果您想像现在一样更加具体地保护数据,将数据限制为登录用户,则可以在基于类的视图中非常轻松地编写自定义混合。