我正在使用基于类的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)
答案 0 :(得分:0)
最好练习使用基于类的列表视图。您也可以将基于功能的视图用于列表。 但是,与基于函数的视图相比,使用基于类的视图有很多好处,例如可以轻松扩展,重用代码等基于类的视图。
安全问题在很大程度上由Django本身解决。因此,您不必为此感到惊慌。
如果您想像现在一样更加具体地保护数据,将数据限制为登录用户,则可以在基于类的视图中非常轻松地编写自定义混合。