我有两个序列化程序,一个用于讲师,一个用于类(class)。 Instructor 序列化程序与类(class)具有定义的关系,如下所示:courses = CourseSerializer(many=True, read_only=True)
如何在讲师序列化程序中指定类(class)顺序?
注意:我已经定义了 ordering
Course Meta 类中的值,但它是我在其他任何地方都想要的默认排序。我想要的是 api 输出的自定义排序(特别是部门、数字、-semester 而不是默认的-semester)。
最佳答案
从 Django 1.7 开始,您可以为 prefetch_related
指定查询集.使用预取只产生一个额外的数据库查询,而不是每个父对象一个 SerializerMethodField
.
from rest_framework import viewsets
from django.db.models import Prefetch
class InstructorViewSet(viewsets.ModelViewSet):
queryset = Instructor.objects.prefetch_related(Prefetch(
'courses',
queryset=Course.objects.order_by('dept', 'number')))
关于django - DRF : custom ordering on related serializers,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33402175/