从请求中获取url变量

时间:2017-06-05 07:18:02

标签: django django-views

我的一个网址如下所示:

url(r'^(?P<my_id>[0-9]+)/foo/', Foo.as_view()),

鉴于此CBV:

Class Whatever(View):

    @custom_decorator(my_id)
    def post(self, request, my_id):
        # ...

我需要访问装饰器中的 my_id 。完成此任务的最佳方法是什么? 也许,重写初始并从 request.path 获取?

1 个答案:

答案 0 :(得分:0)

您应该在网址中命名参数:

url(r'^(?P<my_id>[0-9]+)/foo/', Foo.as_view()),

然后在你的CBV中使用它:

Class Whatever(View):

@decorator(my_id)
def post(self, request, my_id, *args, **kwargs):
    self.kwargs['my_id']
    ...