Django-rules замена guardian.mixins.PermissionListMixin

В моем приложении на базе django я хочу дать пользователям возможность отслеживать свои местоположения. У каждого местоположения есть владелец, и представление списка должно показывать только те местоположения, которыми владеет текущий пользователь.

С помощью django-guardian я смог добиться того же самого, указав следующее в моем views.py:

from django.views import generic
from guardian.mixins import PermissionRequiredMixin, PermissionListMixin

# Create your views here.
from .models import Location


class LocationListView(PermissionListMixin, generic.ListView):
    model = Location
    permission_required = 'view_location'
    paginate_by = 20
    ordering = ['name']

Как мне создать нечто подобное с помощью django-rules?

Вам нужно поделиться моделью Location, чтобы мы могли правильно проконсультировать вас, в обоих случаях вам нужно указать queryset либо в переменной listview, либо переопределив метод get queryset..

Я бы предложил вам следующие строки кода, предполагающие, что модель location имеет внешний ключ от модели Auth User, где каждое место назначено своему владельцу...

  def get queryset(self):
    qs = Location.objects.filter(user=self.request.user)
     return qs
Вернуться на верх