40 lines
1.1 KiB
Python
40 lines
1.1 KiB
Python
from rest_framework import serializers
|
|
|
|
from .models import Sale, SaleLine, Product, Customer
|
|
|
|
|
|
class SaleLineSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = SaleLine
|
|
fields = ['id', 'sale', 'product', 'unit_price', 'quantity']
|
|
|
|
|
|
class SaleWithLinesSerializer(serializers.ModelSerializer):
|
|
lines = SaleLineSerializer(many=True)
|
|
|
|
class Meta:
|
|
model = Sale
|
|
fields = ['id', 'customer', 'date', 'lines']
|
|
|
|
|
|
class SaleSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Sale
|
|
fields = ['id', 'customer', 'date']
|
|
|
|
def to_representation(self, instance):
|
|
representation = super().to_representation(instance)
|
|
representation['lines'] = [line for line in instance.saleline_set.all().values()]
|
|
return representation
|
|
|
|
|
|
class ProductSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Product
|
|
fields = ['name', 'price', 'measuring_unit', 'categories']
|
|
|
|
class CustomerSerializer(serializers.ModelSerializer):
|
|
class Meta:
|
|
model = Customer
|
|
fields = ['name', 'address']
|