some_view?param1=10&param2=20

def some_view(request, param1, param2):

在Django是这种可能的?

有帮助吗?

解决方案

您总是可以写一个装饰。例如。类似的信息(未测试的):

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

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

其他提示

我不知道这是可能得到它通过他们为的参数应用于视图功能,但你为什么不能从GET访问request.GET变量?鉴于URL,Django的将有request.GET['param1']是10和request.GET['param2']是20。否则,你就必须拿出一些很怪的正则表达式的尝试和你想要做什么。

我同意保罗......在之后的东西“?”是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 PARAMS。只是好奇,为什么你要吗?

相反战斗的Django的,为什么不请求some_view 10/20,然后设置/向上urls.py提取参数?

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top