Я написал 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