tôi có các mô hình sau đây trong ứng dụng django:khuôn khổ Django REST của phím nước ngoài và lọc
models.py:
class Make(BaseModel):
slug = models.CharField(max_length=32) #alfa-romeo
name = models.CharField(max_length=32) #Alfa Romeo
def __unicode__(self):
return self.name
class Model(BaseModel):
make = models.ForeignKey(Make) #Alfa Romeo
name = models.CharField(max_length=64) # line[2]
engine_capacity = models.IntegerField()
trim = models.CharField(max_length=128) # line[4]
Và 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')
và cũng 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,)
Điều tôi cần phải làm, tôi muốn tìm nạp tất cả các Mô hình được sản xuất theo chế độ cụ thể. Làm thế nào tôi có thể nhận được tất cả các mô hình có khóa ngoài cụ thể bằng cách sử dụng thông số truy vấn? Và câu hỏi thứ 2 của tôi - tôi có thể lọc kết quả bằng cách sử dụng queryparams để lấy mô hình với engine_capacity cụ thể không?
Một bình luận: Nó sẽ là hoàn hảo, nếu tôi có thể để truy vấn kết quả sử dụng một cái gì đó như thế này trong url: /api/models/?make=ford
nơi làm là slug
trường trong Make
mô hình
Tôi biết cách truy vấn các mô hình Django chuẩn, tôi cần phải làm tương tự với Django Rest Framework – dease