多种对象类型的所有权装饰器

时间:2016-10-10 03:48:34

标签: python django django-models decorator python-decorators

在我写的Django应用程序中,我拥有的许多模型都附带了固有的所有权。我想检查一下,以确保我没有为用户提供他们不应该看到的任何东西。

因此,我调整了以下装饰器以检查他们是否拥有模型:

def must_be_yours_question(func):
    def check_and_call(request, *args, **kwargs):
        #user = request.user
        #print user.id
        pk = kwargs["id"]
        Question = Question.objects.get(pk=pk)
        if not (scene.user.id == request.user.id): 
            return HttpResponse("It is not yours ! You are not permitted !",
                        content_type="application/json", status=403)
        return func(request, *args, **kwargs)
    return check_and_call

但是,因为我至少有4种不同的对象类型,我想测试所有权,所以我不得不编写4个不同的装饰器。

有没有一种简单的方法来编写一个装饰器?最好的方法是传递一个论点吗?

0 个答案:

没有答案