【问题标题】:Allow only staff member to delete post and post created by user只允许员工删除用户创建的帖子和帖子
【发布时间】:2021-07-18 01:46:06
【问题描述】:

在views.py中我们可以覆盖Postdelete中的一些方法来实现这个我尝试过使用

   class PostDelete(DeleteView):
    model = Post
    def get_queryset(self):
        if self.request.user.is_staff:
            return super(PostDelete, self).get_queryset()
    def get_success_url(self):
        return reverse('dashboard')

【问题讨论】:

标签: django django-models django-views


【解决方案1】:

这种方式只有员工可以删除。

   def get_object(self, queryset=None):
        obj = super(PostDelete, self).get_object()
        if obj.user != self.request.user and not self.request.user.is_staff:
            return Http404
        else:
            return obj
    def get_success_url(self):
        return reverse('dashboard')

这样创建帖子的人和员工都可以删除。

def get_object(self, queryset=None):
        obj = super(PostDelete, self).get_object()
        if obj.user != self.request.user and not self.request.user.is_staff:
            return Http404
        else:
            return obj
    def get_success_url(self):
        return reverse('dashboard')

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-10-06
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 2013-01-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多