I have the following models in a django application:
models.py
class Make(BaseModel): slug = models.CharField(max_length=32)
And serializers.py :
from .models import Make,Model from rest_framework import serializers class MakeSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Make fields = ('url', 'slug', 'name') class ModelSerializer(serializers.HyperlinkedModelSerializer): class Meta: model = Model fields = ('url', 'make', 'name', 'trim', 'engine_capacity')
as well as views.py :
from rest_framework import viewsets from rest_framework import filters from rest_framework import generics from .models import Make, Model from .serializers import MakeSerializer, ModelSerializer class MakeViewSet(viewsets.ModelViewSet): queryset = Make.objects.all() serializer_class = MakeSerializer filter_backends = (filters.DjangoFilterBackend,) class ModelViewSet(viewsets.ModelViewSet): make = MakeSerializer queryset = Model.objects.all() serializer_class = ModelSerializer filter_backends = (filters.DjangoFilterBackend,)
What I need, I want to get all Models produced by a particular marker. How can I get all models with a specific make foreign key using query parameters? And my second question is - can I filter the results using queryparams to get models with a specific engine capacity?
One comment: it would be ideal if I could query the results using something like this in url: /api/models/?make=ford , where make is the slug field in the Make model
source share