Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- class Client(models.Model):
- first_name = models.CharField(_('first name'), max_length=30)
- last_name = models.CharField(_('last name'), max_length=30)
- email = models.EmailField(
- verbose_name=_('Email address'),
- max_length=255,
- unique=True,
- primary_key=True
- )
- class Product(models.Model):
- sku = models.CharField(
- verbose_name=_('SKU'),
- unique=True,
- max_length=120,
- primary_key=True
- )
- name = models.CharField(
- verbose_name=_('Name'),
- max_length=150
- )
- url = models.URLField(
- verbose_name=_('URL'),
- blank=True,
- null=True
- )
- class Order(models.Model):
- client = models.ForeignKey(Client)
- origin = models.CharField(
- verbose_name=_('Origin place'),
- max_length=120,
- null=True,
- blank=True
- )
- destination = models.CharField(
- verbose_name=_('Destination place'),
- max_length=120,
- null=True,
- blank=True
- )
- products = models.ManyToManyField(
- Product,
- related_name= "orders",
- null=True,
- blank=True,
- )
- class ProductSerialiser(serializers.ModelSerializer):
- class Meta:
- model = Product
- fields = ('sku', 'name', 'url')
- class ClientSerialiser(serializers.ModelSerializer):
- class Meta:
- model = Client
- fields = ('email','first_name', 'last_name')
- class OrderSerializer(serializers.ModelSerializer):
- owner = serializers.ReadOnlyField(source='owner.email')
- client= ClientSerialiser()
- products=ProductSerialiser(many=True)
- class Meta:
- model = Order
- fields = ('id','client','origin', 'destination','owner', 'products' )
- def create(self, validated_data):
- products_data = validated_data.pop('products')
- #WHAT TO PUT HERE ?
- order = Order.objects.create(**validated_data)
- for product_data in products_data:
- Product.objects.create(order=order, **product_data)
- return order
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement