Было бы проще дать правильный ответ, если бы мы увидели, как реализованы ваши модели.Не зная связи полей, я все равно попробую
Вот два вида решений:
Первый:
class StudentFilterTeacherSerializer(serializers.ModelSerializer):
first_name = serializers.CharField(source='teacher.first_name')
last_name = serializers.CharField(source='teacher.last_name')
class Meta:
model = TeacherClass
fields = ("first_name","last_name")
class StudentFilterSerializer(serializers.ModelSerializer):
current_teachers = SerializerMethodField(required=False)
class Meta:
model = Student
fields = ("first_name", "last_name", "unique_id", "current_teachers")
def current_teachers(self, student):
# Get all teachers for this student
# I don't know how your models are created but you'll get the idea
# assuming you have "related_name" setup between student and teachers
teachers = student.teachers.all()
return StudentFilterTeacherSerializer(teachers, many=True).data
и второй (вероятно, не тот, который вам нужен, но для вашего знания):
Примечание: это вернет все поля для учителей.
class StudentFilterSerializer(serializers.ModelSerializer):
class Meta:
model = Student
fields = ("first_name", "last_name", "unique_id",)
# if you somehow have teachers field in 'student' model then you can also do
depth = 1
РадПомогите.Дайте мне знать, если это работает, или вы ничего не понимаете.