django - DRF : custom ordering on related serializers

标签 django django-rest-framework

我有两个序列化程序,一个用于讲师,一个用于类(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/

相关文章:

python - Django Forms - DateInput 未从实例填充

python - Django View 限制子查询

python - 用于指定数据库的 Django queryset "using()"方法不适用于 related_name 查询

django - 是否可以在 Django 中添加对特定 url 的权限

python - 在 Django REST 控件序列化程序中不会自动删除空格?

django - 如何在单个帖子中更新多个实例 - django rest framework

python - 在 django rest framework searchfilter 中禁用多重搜索

Django REST 框架 : require login to view API

mysql - 如何连接到 vagrant 中的数据库

python - Django Rest Framework 无效序列化