Advertisement
Guest User

Untitled

a guest
Aug 22nd, 2017
326
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.08 KB | None | 0 0
  1. class Client(models.Model):
  2. first_name = models.CharField(_('first name'), max_length=30)
  3. last_name = models.CharField(_('last name'), max_length=30)
  4. email = models.EmailField(
  5. verbose_name=_('Email address'),
  6. max_length=255,
  7. unique=True,
  8. primary_key=True
  9. )
  10.  
  11. class Product(models.Model):
  12. sku = models.CharField(
  13. verbose_name=_('SKU'),
  14. unique=True,
  15. max_length=120,
  16. primary_key=True
  17. )
  18. name = models.CharField(
  19. verbose_name=_('Name'),
  20. max_length=150
  21. )
  22. url = models.URLField(
  23. verbose_name=_('URL'),
  24. blank=True,
  25. null=True
  26. )
  27.  
  28. class Order(models.Model):
  29. client = models.ForeignKey(Client)
  30. origin = models.CharField(
  31. verbose_name=_('Origin place'),
  32. max_length=120,
  33. null=True,
  34. blank=True
  35. )
  36. destination = models.CharField(
  37. verbose_name=_('Destination place'),
  38. max_length=120,
  39. null=True,
  40. blank=True
  41. )
  42.  
  43. products = models.ManyToManyField(
  44. Product,
  45. related_name= "orders",
  46. null=True,
  47. blank=True,
  48. )
  49.  
  50. class ProductSerialiser(serializers.ModelSerializer):
  51. class Meta:
  52. model = Product
  53. fields = ('sku', 'name', 'url')
  54.  
  55. class ClientSerialiser(serializers.ModelSerializer):
  56. class Meta:
  57. model = Client
  58. fields = ('email','first_name', 'last_name')
  59.  
  60.  
  61.  
  62. class OrderSerializer(serializers.ModelSerializer):
  63. owner = serializers.ReadOnlyField(source='owner.email')
  64. client= ClientSerialiser()
  65. products=ProductSerialiser(many=True)
  66.  
  67. class Meta:
  68. model = Order
  69. fields = ('id','client','origin', 'destination','owner', 'products' )
  70.  
  71. def create(self, validated_data):
  72. products_data = validated_data.pop('products')
  73. #WHAT TO PUT HERE ?
  74. order = Order.objects.create(**validated_data)
  75. for product_data in products_data:
  76. Product.objects.create(order=order, **product_data)
  77. return order
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement