Перенаправление с помощью данных в Django

У меня есть авторизация пользователя по ссылке:

def ClientAuth(request, link_code):
try:
    code = Links.objects.filter(code=link_code).values('code', 'status')
    if code[0]['status']:
        username, password = 'Client', '**************'
        client = authenticate(request, username=username, password=password)
        if client is not None:
            login(request, client)
            return redirect('clientPage')

        return HttpResponse("Hello its work")
    else:
        return render(request, 'client/404.html')
except:
    return render(request,'client/404.html')

Если ссылка существует в базе данных и активный авторизует нас как клиента и перенаправляет на свою страницу, то в urls это выглядит следующим образом:

urlpatterns = [
   path('clientPage/',views.clientPage, name = 'clientPage'),
   path('<link_code>/', views.ClientAuth, name='ClienAuth')
]

Моя задача состоит в том, чтобы в зависимости от ссылки, которую клиент использовал для входа на клиентскую страницу, он получал разную информацию, например, ID ссылки

Есть ли способ передать эти данные из функции ClientAuth при перенаправлении?

перенаправление на эту страницу:

def clientPage(request):
    print(request)
    return HttpResponse("Hello")

Вы должны изменить урлы следующим образом:

urlpatterns = [
   path('clientPage/<link_code>',views.clientPage, name = 'clientPage'),
   path('<link_code>/', views.ClientAuth, name='ClienAuth')
]

затем измените представления, как показано ниже:

def ClientAuth(request, link_code):
try:
    code = Links.objects.filter(code=link_code).values('code', 'status')
    if code[0]['status']:
        username, password = 'Client', '**************'
        client = authenticate(request, username=username, password=password)
        if client is not None:
            login(request, client)
            return redirect('clientPage', link_code=link_code)

        return HttpResponse("Hello its work")
    else:
        return render(request, 'client/404.html')
except:
    return render(request,'client/404.html')


def clientPage(request, link_code=''):
    print(request)
    context = {'link_code': link_code}
    return render(request, 'test_app/index.html', context)
Вернуться на верх