通过提高404保护页面

时间:2019-01-02 00:11:26

标签: python django

我正在学习Django,如果不是来自特定登录用户的请求,我想通过提高404来保护某些页面。

我已经向用户提及了主题。这是保护主题页面的代码。

@login_required
def topic(request, topic_id):
    topic = Topic.objects.get(id=topic_id)
    if topic.owner != request.user:
        raise Http404

我想知道是否有更好的方法来保护很多页面,所以不必在每个函数中都添加相同的代码?

1 个答案:

答案 0 :(得分:2)

如果您确实想提高404,更快的方法是让用户检查查询本身的一部分-然后您可以使用get_object_or_404 shortcut

topic = get_object_or_404(Topic, id=topic_id, owner=request.uset)