title: Django-Rest-Framework. Updating nested object
body: <p>I'm having a problem of updating a nested object.</p>
  
  <p>So I have a model which structure is similar to this one:</p>
  
  <pre><code>class Invoice(models.Model):
      nr = models.CharField(max_length=100)
      title = models.CharField(max_length=100)
  
  class InvoiceItem(models.Model):
      name = models.CharField(max_length=100)
      price = models.FloatField()
      invoice = models.ForeignKey(Invoice, related_name='items')
  </code></pre>
  
  <p>I need to create child objects from parent, and what I mean by that, is to create <code>InvoiceItems</code> directly when creating an <code>Invoice</code> object.
  For this purpose, I've wrote the following serializers:</p>
  
  <pre><code>class InvoiceItemSerializer(serializers.ModelSerializer):
      invoice = serializers.PrimaryKeyRelatedField(queryset=Invoice.objects.all(), required=False)
      class Meta:
          model = InvoiceItem
  
  
  class InvoiceSerializer(serializers.ModelSerializer):
      items = InvoiceItemSerializer(many=True)
  
      class Meta:
          model = Invoice
  
      def create(self, validated_data):
          items = validated_data.pop('items', None)
          invoice = Invoice(**validated_data)
          invoice.save()
          for item in items:
              InvoiceItem.objects.create(invoice=invoice, **item)
          return invoice
  </code></pre>
  
  <p>Up till now, the create/read/delete methods work perfectly, except the <code>update</code>.
  I think the below logic should be correct, but it misses something.</p>
  
  <pre><code>def update(self, instance, validated_data):
      instance.nr = validated_data.get('nr', instance.nr)
      instance.title = validated_data.get('title', instance.title)
      instance.save()
  
      # up till here everything is updating, however the problem appears here.
      # I don't know how to get the right InvoiceItem object, because in the validated
      # data I get the items queryset, but without an id.
  
      items = validated_data.get('items')
      for item in items:
          inv_item = InvoiceItem.objects.get(id=?????, invoice=instance)
          inv_item.name = item.get('name', inv_item.name)
          inv_item.price = item.get('price', inv_item.price)
          inv_item.save()
  
      return instance
  </code></pre>
  
  <p>Any help would be really appreciated.</p>