Django Rest Framework GET запрос с параметрами - PullRequest
0 голосов
/ 27 февраля 2020

Я пытаюсь сделать запрос get с параметрами (srcFilename) в Django Rest Framework. Я довольно озадачен тем, куда добавить «req.query.srcFilename» (как это было бы в javascript) в django. Я прочитал, что должен добавить полный URL с параметрами в "<>", как показано в коде ниже, но он не найдет URL.

views.py:

@api_view(['GET'])
def api_generate_signed_url(request, srcFilename):
    print(f'srcFilename: {srcFilename}')
    bucket = storage_client.bucket(bucket_name)
    blob = bucket.blob(srcFilename)
    if request.method == 'GET':
        url = blob.generate_signed_url(
            version="v4",
            # This URL is valid for 15 minutes
            expiration=datetime.timedelta(minutes=15),
            # Allow GET requests using this URL.
            method="GET",
        )
        print(f"Generated GET signed URL: {url}")
        return Response(url)

urls.py:

from django.urls import include, path
from rest_framework import routers
from .views import api_generate_signed_url

router = routers.DefaultRouter()

urlpatterns = [
    path('', include(router.urls)),
    path('api-auth/', include('rest_framework.urls', namespace='rest_framework')),
    path(r'signedurl?srcFilename=<srcFilename>', api_generate_signed_url),
]

При попытке сделать это в Почтальоне я получаю следующую ошибку:

The current path, signedurl, didn't match any of these.

Скриншот почтальона

1 Ответ

1 голос
/ 27 февраля 2020

Вы должны изменить свой путь, как показано ниже ...

path('signedurl', api_generate_signed_url),

Не нужно писать ?srcFilename=<srcFilename>. Просто удалите его.

Затем, по вашему мнению, получите доступ к параметрам запроса через QueryDict request.query_params.get('srcFilename').

...