2 つのシリアライザーがあります。1 つはインストラクター用、もう 1 つはコース用です。インストラクター シリアライザーには、コースとの定義された関係が次のようにあります。
courses = CourseSerializer(many=True, read_only=True)
インストラクター シリアライザーでコースの順序を指定するにはどうすればよいですか?
注: Course Meta クラスで値を定義しましたordering
が、これは他のすべての場所で必要なデフォルトの並べ替えです。必要なのは、API 出力のカスタム順序付け (具体的には、デフォルトの -semester ではなく、dept、number、-semester) です。
ベストアンサー1
読み取り専用なので、そのフィールドにシリアライザー メソッドを使用するのも同じくらい簡単ではないでしょうか?
class InstructorSerializer(serializers.ModelSerializer):
courses = serializers.SerializerMethodField()
def get_courses(self, obj):
ordered_queryset = <do your magic here>
return CourseSerializer(ordered_queryset, many=True, context=self.context).data