Параметры не отправляются на URL-адрес при перенаправлении Django - PullRequest
0 голосов
/ 04 августа 2020

Я хочу отправить параметр получения на указанный c URL, например http://127.0.0.1: 8000 / foo? Myid = 99

Однако этот код не создает параметр получения :

def BarView(request):
    return redirect(reverse('foo'), myid=99)

Но в результате получается URL http://127.0.0.1: 8000 / foo /

def FooView(request):
    return HttpResponse('''<html lang="en"><body><p>myid: %s</p>
        </body>''' % request.GET.get('myid', ''))

В urls.py:

urlpatterns = [
    path('foo/', views.FooView, name='foo'),
    path('bar/', views.BarView, name='bar'),
]

1 Ответ

1 голос
/ 04 августа 2020

reverse отобразит ваше имя URL в виде строки. Поэтому, если вы хотите добавить параметр get, просто объедините его со строкой, подобной следующей:

<strong>from django.http import HttpResponseRedirect</strong>

def BarView(request):
    query = "?myid=99"
    return <strong>HttpResponseRedirect(reverse('foo') + query)</strong>

Обратите внимание, что я использовал HttpResponseRedirect

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...