为发布/编辑文章添加权限控制

之前在介绍发布和编辑文章时,你应该发现了,不管有没有登录,都可以进行发布和编辑文章,这肯定不是我们想要的。

这里所说的权限控制就是,简单的设置成只有管理员才能进行发布和编辑文章。

分两步:

1. 在页面端对于非管理员用户隐藏发布/编辑文章按钮(链接)

以发布文章为例:

{% if user.is_staff %}
    <a class="btn btn-primary" href="{% url 'article_publish' %}" role="button">发布新文章</a>
{% endif %}

2. 在 views.py 中添加

from django.contrib.admin.views.decorators import staff_member_required

class AdminRequiredMixin(object):
    @classmethod
    def as_view(cls, **initkwargs):
        view = super(AdminRequiredMixin, cls).as_view(**initkwargs)
        return staff_member_required(view)

然后让 ArticlePublishViewArticleEditView 类继承 AdminRequiredMixin 即可。

3. 然后你可以测测

直接在浏览器中输入发布文章的链接地址:http://192.168.1.221:8000**/blog/article/publish**

若不是管理员用户,则会直接跳转到管理员登录页面。

results matching ""

    No results matching ""