You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

47 lines
1.2 KiB

from rest_framework import serializers
from finance.models import Bill, Invoice
class BillSerializer(serializers.ModelSerializer):
opener = serializers.SerializerMethodField()
user = serializers.SerializerMethodField()
invoices = serializers.SerializerMethodField()
class Meta:
model = Bill
fields = '__all__'
@staticmethod
def get_user(self):
return self.user.email
@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):
status = serializers.SerializerMethodField()
method = serializers.SerializerMethodField()
yandex_pay_id = serializers.SerializerMethodField()
class Meta:
model = Invoice
exclude = ('bill',)
@staticmethod
def get_status(self):
return self.get_status_display()
@staticmethod
def get_yandex_pay_id(self):
return None if self.yandex_pay is None else self.yandex_pay.id
@staticmethod
def get_method(self):
return self.get_method_display()