Как создать объект запроса в Django с сессией и cookies аутентифицированного пользователя?

В представлении Django я могу использовать cookies из входящего запроса и передать их в другой запрос в качестве средства аутентификации и делать запросы к другим представлениям в проекте, используя модуль requests.

def someview(request):
    cookies = request.COOKIES
    csrftoken = cookies['csrftoken']

    baseurl = settings.BASEURL
    url = f"{baseurl}/api/csvuploads/"
    payload = {...}

    resp = requests.post(
        url,
        data=payload,
        cookies=cookies,
        headers={'X-CSRFToken': csrftoken},
    )

Мне нужно, чтобы команда управления выполнялась периодически (как cronjob), чтобы иметь аналогичную логику, проблема в том, что команда управления будет выполняться в контейнере в Kuberentes, поэтому мне нужно создать пользователя, запрос, аутентификацию и вход, чтобы я мог делать больше запросов.

Как я могу воссоздать тот же запрос с сессией, куками и всем остальным, если запрос исходит не от представления?

Моя первая попытка была использовать RequestFactory из тестового фреймворка, но я не смог понять, как создать запрос с сессией и cookies из аутентификации.

def handle(self, *args, **options):
    factory = RequestFactory()
    request = factory.post(
        "/admin/login",
        {'username': username, 'password': password}
    )
    user = authenticate(request, username=username, password=password)
    request.user = user

Я знаю, что могу сделать это с помощью теста Client(), но будет ли хорошей практикой использовать инструмент тестирования для выполнения запросов в сценарии, подобном производственному?

Вернуться на верх