В таблице имеется дополнительное поле profile_id, хранящее уникальное id профиля пользователя. Пользуюсь представление на базе UpdateView. От редактирования данные удается защитить так:
class MyFormUpdate(LoginRequiredMixin,generic.UpdateView):
model = Employee
def form_valid(self, form):
profile_id = ...
record_id = ...
if profile_id == record_userprofile_id:
return super(MyFormUpdate, self).form_valid(form)
else:
raise Http404(u"Как вам не стыдно %s" % self.request.user.get_username() )
Работает, редактировать чужие данные нельзя. Но, просмотреть чужие записи можно, перебирая числа:
myapp1/profile/update/Число
Число, как положено в стандартных View - это номер записи в таблице.
Как от этого защитить?