some_view?param1=10¶m2=20
def some_view(request, param1, param2):
Django可以吗?
答案 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来提取参数呢?