Сериализаторы. Сериализаторы. Сериализаторы.

Сериализаторы.

Open in new window

SerializerMethodField

class CompanySerializer(serializers.ModelSerializer):
    faunder = serializers.SerializerMethodField()
    def get_faunder(self, instance):
        names = []
        persons = Person2Company.objects.filter(company=instance)
        for p in persons:
            person = p.person
            names.append({
                'name': person.full_name_ru,
                'id': person.id
            })
        return names
    class Meta:
        model = Company
        fields = ['name_ru', 'city', 'faunder']

Глубина отображения

class Meta:
    model = Company
    fields = ['name_ru', 'city', 'faunders']
    depth = 1

Будет доставать зависимую запись и отображать ее сериализацию вместо id.

Other topics