some_view?param1=10¶m2=20
def some_view(request, param1, param2):
Возможно ли это в Django?Авто GET к аргументу зрения
some_view?param1=10¶m2=20
def some_view(request, param1, param2):
Возможно ли это в Django?Авто GET к аргументу зрения
Вы всегда можете написать декоратор. Например. что-то вроде (непроверенные):
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']
be 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. Просто любопытно, почему ты хочешь этого?
Мне нужна эта причина - его использование меньше кода, я могу возможно сделать декоратора для этого –
Вместо того, чтобы бороться с Django, почему бы просто не запросить some_view/10/20, а затем настроить urls.py для извлечения аргументов?
+1: Используйте URL-адресов - все работает лучше. –
Я не сражаюсь, это моя служба json, параметры jquery для отправки, многие разные и многие не требуются. Вот почему его проще. –
Ницца. Думаю, это сработает. Очень чисто. :) +1 –