Я использую представления на основе классов Django.
views.py
class ReportListView(LoginRequiredMixin, ListView):
model = Report
def get_queryset(self):
queryset = Report.objects.filter(user=self.request.user)
return queryset
class ReportDetailView(LoginRequiredMixin, DetailView):
model = Report
class ReportUpdateView(LoginRequiredMixin, UpdateView):
model = Report
class ReportCreateView(LoginRequiredMixin, CreateView):
model = Report
class ReportDeleteView(DeleteView):
model = Report
Как видите, это самые общие представления, но все они должны представлять данные только для текущего пользователя.
В настоящее время любой пользователь может видеть / просматривать данные других пользователей.
Один из способов, который я увидел, заключается в том, что люди будут определять свой метод get_queryset, как описано выше. Этот подход фильтрует только визуализированные данные, но пользователь все еще может получить доступ к запрещенным данным через URL (при условии, что он знает / угадывает идентификатор).
Как я могу ограничить доступ к ресурсам других пользователей?