自动GET到视图的参数

时间:2009-04-18 07:48:08

标签: python django django-urls django-views

some_view?param1=10&param2=20

def some_view(request, param1, param2):

Django可以吗?

4 个答案:

答案 0 :(得分:3)

你总是可以写一个装饰者。例如。像(未经测试的):

def map_params(func):
    def decorated(request):
        return func(request, **request.GET)
    return decorated

@map_params
def some_view(request, param1, param2):
    ...

答案 1 :(得分:1)

我不确定是否可以将它作为参数传递给view函数,但为什么不能从GET访问request.GET变量?鉴于该URL,Django将request.GET['param1']为10而request.GET['param2']为20.否则,你必须想出某种奇怪的正则表达式来尝试做你想做的事。

答案 2 :(得分:1)

我同意Paolo ......''后面的东西是GET参数,应该可以这样对待。也就是说,如果你真的想保留some_view()的定义,就像你在问题中所说的那样,你可以这样做:

from django.http import Http404
def some_view_proxy(request):
     if 'param1' in request.GET and 'param2' in request.GET:
         return some_view(request, request.GET['param1'],
                          request.GET['param2'])
     raise Http404

或者您可以像这样定义some_view()并使用GET参数。只是好奇,为什么你想要那个?

答案 3 :(得分:1)

为什么不直接请求some_view / 10/20然后设置urls.py来提取参数呢?