Как я могу параметризовать DRF API GET URL? - PullRequest
0 голосов
/ 03 мая 2019

Я написал API со следующим форматом URL регулярного выражения, который не соответствует тому, что я хотел. Как мне это сделать? любая помощь приветствуется. Спасибо в ожидании.

Что я на самом деле хочу, который бросает KeyError at /app/check/ 'id' ошибка ...views.py in get_queryset, line 15

http://sample.com/app/check/?id=any_id_passed_into_the_url

То, что у меня есть, работает :

http://sample.com/app/check/id

Что я сделал

# app/urls.py
urlpatterns = [
    url(r'^app/', include('modul.urls', namespace='modul')),
] + static(settings.STATIC_URL, document_root=settings.STATIC_ROOT) + static(settings.MEDIA_URL, document_root=settings.MEDIA_ROOT)


# modul/urls.py
from django.conf.urls import url
from modul.views import OfferView

urlpatterns = [
    url(r'^check/(?P<id>[0-9]+)/$', OfferView.as_view(), name='id')
]

views.py

from rest_framework.response import Response

from app.models import App
from rest_framework import generics
from app.serializers import AppSerializer
from django.http import Http404
from IPython import embed


class OfferView(generics.RetrieveAPIView):
    serializer_class = AppSerializer
    lookup_field = 'id' # Here is line 15

    def get_queryset(self):
        id = self.kwargs['id']
        try:
            return App.objects.filter(id=id)
        except App.DoesNotExist:
            raise Http404
...