【问题标题】:Django-rules replacement of guardian.mixins.PermissionListMixinDjango 规则替换 Guardian.mixins.PermissionListMixin
【发布时间】:2021-11-04 17:58:19
【问题描述】:

在我基于 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 创建类似的东西?

【问题讨论】:

    标签: django guardian django-rules


    【解决方案1】:

    您需要共享 Location 模型,以便我们可以为您提供适当的建议,在这两种情况下,您都需要在 listview 变量中或通过覆盖 get queryset 方法来指定查询集..

    我建议您遵循代码行,假设位置模型具有来自 Auth User 模型的外键,其中每个位置都分配给其所有者..

      def get queryset(self):
        qs = Location.objects.filter(user=self.request.user)
         return qs
    

    【讨论】:

    • 我遵循了您的代码行(期望 get_queryset() 而不是 get queryset()),它按预期工作。
    • 我只是想知道它如何与组一起工作,但这将是一个不同的问题。 :-) 感谢您的帮助
    • 不客气,谢谢支持!!
    猜你喜欢
    • 2016-12-11
    • 2012-04-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-03-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多