7

ユーザーが自分のリストを作成および編集できるサイトがあります。

汎用ビューCreateViewを使用して、ユーザーがリストを作成できるようにしています。

汎用ビューUpdateViewを使用してリストを編集できるようにしたいのですがlogin_required=True、リストの作成者だけがリストを編集できるため、この場合は十分ではありません。

2つの質問:

1)この制限を追加するためにURLconfで指定できるパラメーターはありますか?

2)これらの汎用ビューはPOSTでのみ機能し、GETでは機能しないように強制できますか?

ありがとう

4

2 に答える 2

9

あなたは:を上書きすることができget_querysetますUpdateView

def get_queryset(self):
    base_qs = super(YourListUpdateView, self).get_queryset()
    return base_qs.filter(user=self.request.user)
于 2011-12-21T20:14:49.670 に答える
2

1)デコレータを記述して、デコレータと同じように使用できますlogin_required。つまり、次のようになります。

def user_permitted(function):
    def decorator(function):
        def _wrapped_view(request, *args, **kwargs):
            # get obj from request
            if obj.user != request.user:
                return HttpResponseRedirect(reverse('forbidden'))
            return function(request, *args, **kwargs)
        return _wrapped_view
    return decorator(function)

2)はい、デコレータデコレーションクラスベースのビューを参照してください

于 2011-12-21T19:39:50.107 に答える