I'm trying to make a web app API. I want to make an API request where multiple ids can be submitted.
The django rest framework tutorial shows how to get all records from a model. For example http://127.0.0.1:8000/snippets/ will return all snippet records. The tutorial also shows how to retrieve a single item from a model. http://127.0.0.1:8000/snippets/2/ will return only snippet record with pk=2.
I'd like to be able to request multiple records, but not all records.
How could I change this code so I could request multiple snippets?
from django.conf.urls import url
from snippets import views
urlpatterns = [
def snippet_detail(request, *pk):
snippet = Snippet.objects.filter(pk__in=pk)
if request.method == 'GET':
serializer = SnippetSerializer(snippet)
Based in your comment, you could send the ids via url:
and in your view
... ids = request.GET.get('ids') # u'2,3,4' <- this is unicode ids = ids.split(',') # [u'2',u'3',u'4'] <- this is a list of unicodes with ids values
Then you can query to Snippet model:
This could give you some problems if there's spaces between ids in url:
127.0.0.1:8000/snippets/?ids=2, 3 , 4
You could need process every value before perform a query