from rest_framework import serializers from finance.models import Bill, Invoice class BillSerializer(serializers.ModelSerializer): opener = serializers.SerializerMethodField() user = serializers.SerializerMethodField() course = serializers.SerializerMethodField() invoices = serializers.SerializerMethodField() class Meta: model = Bill fields = '__all__' @staticmethod def get_user(self): return self.user.email @staticmethod def get_course(self): return self.course.title @staticmethod def get_invoices(self): return [InvoiceSerializer(i).data for i in self.invoice_set.all()] @staticmethod def get_opener(self): return self.opener.email class InvoiceSerializer(serializers.ModelSerializer): class Meta: model = Invoice exclude = ('bill', )