Форум сайта python.su
В таблице имеется дополнительное поле 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() )
Отредактировано django314 (Апрель 28, 2014 18:42:34)
Офлайн
from django.http import Http404 class OwnerOnlyMixin(object): def get_object(self, queryset=None): obj = super(OwnerOnlyMixin, self).get_object() if (obj.owner_id == self.request.user.pk) : return obj raise Http404
Отредактировано Singularity (Апрель 28, 2014 19:24:33)
Офлайн