Форум сайта python.su
Здравствуйте!
Для LoginRequired в cbv я использую:
class LoginRequiredMixin(object): @method_decorator(login_required) def dispatch(self, request, *args, **kwargs): return super(LoginRequiredMixin, self).dispatch(request, *args, **kwargs) class CarAdd(LoginRequiredMixin, CreateView): pass
class MyDeleteView(DeleteView): def get_object(self, queryset=None): """ Hook to ensure object is owned by request.user. """ obj = super(MyDeleteView, self).get_object() if not obj.owner == self.request.user: raise Http404 return obj
Отредактировано andreiru (Июль 12, 2013 09:29:38)
Офлайн
Офлайн
Сделайте проверку в виде миксина
class CheckOwnerMixin(object): owner_field = 'owner' def get_object(self, queryset=None): obj = super(MyDeleteView, self).get_object() if not getattr(obj, self.owner_field) == self.request.user: raise Http404 return obj class MyDeleteView(CheckOwnerMixin, DeleteView): pass
Офлайн
zheromo, смущает obj = super(MyDeleteView , self).get_object(), получается миксин только для одной вьюхи !?
Офлайн