#python #django #django-views
#python #django #django-просмотры
Вопрос:
На мой взгляд, я получил querystring
:
def my_view(request):
query_string = request.GET
Затем я выполняю некоторые действия в этом представлении. Наконец, я хочу добавить querystring
к URL-адресу просмотра при полном отображении страницы:
return render(request, 'my_template.html', context=context) # Want to add querystring here!
Вкратце, я хочу добавить querystring
для просмотра функции рендеринга или что-то в этом роде. Как я могу это сделать?
Процесс рендеринга:
Я думаю, что я должен объявить свою цель. Я объясню весь процесс рендеринга и определю, что я имею в виду. Смотрите:
-
Пользователь нажимает на ссылку, которая переходит к этому представлению (отправить запрос). Предположим, что это наша ссылка:
site.com/my/page/?q1=value_1amp;q2=value_2
-
Просмотр вызова функции:
# urls.py path('my/page/', my_view) # views.py def my_view(request): query_string = request.GET
-
Шаблон рендеринга с
request
,template
иcontext
:return render(request, 'my_template.html', context=context)
-
После завершения html и всех статических файлов у нас есть HTML-страница, которая имеет
URL
иhtml
.
Я хочу добавить свой основной querystring
в URL процесса 4. Как я могу это сделать?
Комментарии:
1. Строка запроса уже находится в конце URL-адреса при рендеринге этого конкретного представления. Обратите внимание, что имя шаблона не имеет ничего общего с URL. Каждое представление может отображать ноль, один или несколько шаблонов, и каждый шаблон может отображаться в нулевом, одном или нескольких представлениях.
2. Привет, Уиллем. Пожалуйста, посмотрите мою новую правку @WillemVanOnsem
3. но обычно URL останется
site.com/my/page/?q1=value_1amp;q2=value_2
, а неsite.com/my_template.html
, поскольку шаблон не влияет на пути.4. Я знаю, что шаблон не влияет на путь! Я имею в виду: когда мое представление отображалось, я получил это:
site.com/my/page/
, и я хочу получить это:site.com/my/page/?q1=value_1amp;q2=value_2
@WillemVanOnsem5. но откуда
?q1=...
берется?request.GET
определяет строку запроса в данный момент . Итак, если вы посещаете его с помощьюsite.com/my/page
, тогда нет querysetring иrequest.GET
, таким образом, будет пустым.