문제

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'] 그렇지 않으면, 당신은 당신이 원하는 것을 시도하고 노력하기 위해 어떤 종류의 이상한 정규 표현을 생각해 내야합니다.

나는 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 params를 사용할 수 있습니다. 궁금한 점이 있습니다. 왜 원하십니까?

django와 싸우는 대신, 몇 가지 _view/10/20을 요청한 다음 urls.py를 설정하여 인수를 추출하지 않겠습니까?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top