Найти - Пользователи
Полная версия: Django Mixin для проверки владельца записи
Начало » Django » Django Mixin для проверки владельца записи
1
andreiru
Здравствуйте!

Для 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

?
FishHook
пригодится
zheromo
Сделайте проверку в виде миксина
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
andreiru
zheromo, смущает obj = super(MyDeleteView , self).get_object(), получается миксин только для одной вьюхи !?
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB