The task is to create a JSON file with a complete list of orders in the online store. Expected Result:
[ { "delivery": { "delivery_time": "2016-07-06T14:14:26Z", "delivery_adress": "Тестовый адрес тоставки", "phone": "12345678" }, 'products': [ {"product": 1,"count": "2"}, {"product": 2,"count": "1"}, {"product": 3,"count": "4"}, ... ], "paymentMethod": { "id": 2 }, "summ": "1900", "success": false } ] There are several serializers for this purpose, at the moment the delivery and paymentMethod serializer is working correctly, it’s impossible to add products.
class OrderProductSerializer(serializers.ModelSerializer): class Meta: model = OrderProduct fields = ('product','count') def create(self, validated_data): return OrderProduct.objects.create(**validated_data) class OrderSerializer(serializers.ModelSerializer): paymentMethod = PaymentsSerializer(required=False, allow_null=True) delivery = DeliverySerializer(required=False, allow_null=True) orderProduct_set=OrderProductSerializer(many=True) class Meta: model = Order fields =('delivery','paymentMethod','summ','success','orderProduct_set'), The error that I get
Got AttributeError when attempting to get a value for field `orderProduct_set` on serializer `OrderSerializer`. The serializer field might be named incorrectly and not match any attribute or key on the `Order` instance. Original exception text was: 'Order' object has no attribute 'orderProduct_set'. Models
class Order (models.Model): id = models.AutoField(primary_key=True) date_create = models.DateField(auto_now_add=True) date_change = models.DateField(auto_now=True) summ =models.CharField(max_length=15,default='0') delivery = models.ForeignKey('Delivery') success = models.BooleanField(default=False) paymentMethod = models.ForeignKey('Payments') def __int__(self): return self.id class OrderProduct(models.Model): order=models.ForeignKey('Order') id = models.AutoField(primary_key=True) date_create = models.DateField(auto_now_add=True) date_change = models.DateField(auto_now=True) price = models.CharField(max_length=15,default='0') product = models.ForeignKey('product.Product') count = models.CharField(max_length=15,default='0') def __int__(self): return self.id