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