DRF: 関連シリアライザーのカスタム順序付け 質問する

DRF: 関連シリアライザーのカスタム順序付け 質問する

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

おすすめ記事