Метод get_full_path

Метод get_full_path применяется к объекту HttpRequest и возвращает строку, содержащую путь запроса с добавленной строкой запроса (если она присутствует). В отличие от атрибута path, который возвращает только путь без параметров, get_full_path включает все параметры GET запроса. Метод часто используется для перенаправления пользователя на ту же страницу с сохранением всех GET параметров, а также для построения абсолютных URL с помощью метода HttpRequest/method/build_absolute_uri/">build_absolute_uri.

Синтаксис

pythonrequest.get_full_path()

Метод не принимает аргументов и возвращает строку.

Пример . Использование в представлении

Рассмотрим пример, в котором представление возвращает текущий полный путь запроса:

pythonfrom django.http import HttpResponse

def my_view(request):
    current_path = request.get_full_path()
    return HttpResponse(f"Current full path: {current_path}")

Результат выполнения кода:

python"Current full path: /articles/?category=tech&page=2"

Пример . Использование для редиректа

Метод get_full_path часто применяется в связке с редиректом для возврата пользователя на ту же страницу с сохранением всех параметров:

pythonfrom django.shortcuts import redirect

def process_form(request):
    if request.method == 'POST':
        # Обработка данных формы
        return redirect(request.get_full_path())
    return render(request, 'form.html')

Результат выполнения кода:

python"Redirecting to: /articles/?category=tech&page=2"

Пример . Сравнение с атрибутом path

Важно понимать разницу между get_full_path и атрибутом path. Атрибут path возвращает только путь без GET параметров:

pythonfrom django.http import HttpResponse

def compare_paths(request):
    full_path = request.get_full_path()
    path_only = request.path
    return HttpResponse(f"Full path: {full_path}\nPath only: {path_only}")

Результат выполнения кода:

python"Full path: /articles/?category=tech&page=2\nPath only: /articles/"

Пример . Использование для формирования абсолютных ссылок

Метод get_full_path часто используется с методом build_absolute_uri для получения полного URL с протоколом и доменом:

pythonfrom django.http import HttpResponse

def absolute_url_example(request):
    full_path = request.get_full_path()
    absolute_uri = request.build_absolute_uri(full_path)
    return HttpResponse(f"Absolute URI: {absolute_uri}")

Результат выполнения кода:

python"Absolute URI: https://example.com/articles/?category=tech&page=2"

Смотрите также

  • метод build_absolute_uri,
    который строит полный абсолютный URL на основе переданного пути
  • атрибут path,
    который возвращает только путь запроса без строки запроса
  • атрибут GET,
    который содержит QueryDict с параметрами GET запроса
  • функция redirect,
    которая используется для перенаправления на заданный URL