guardian.mixins.PermissionListMixin 的 Django 规则替换
Django-rules replacement of 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 模型,以便我们可以为您提供适当的建议,在这两种情况下,您都需要在 listview 变量中或通过重写 get queryset 方法指定 queryset。
我建议您遵循以下代码行,假设位置模型具有来自 Auth User 模型的外键,其中每个位置都分配给其所有者..
def get queryset(self):
qs = Location.objects.filter(user=self.request.user)
return qs
在我基于 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 模型,以便我们可以为您提供适当的建议,在这两种情况下,您都需要在 listview 变量中或通过重写 get queryset 方法指定 queryset。
我建议您遵循以下代码行,假设位置模型具有来自 Auth User 模型的外键,其中每个位置都分配给其所有者..
def get queryset(self):
qs = Location.objects.filter(user=self.request.user)
return qs