From e1d98f77563abf49c4b19dcfb95f263515ae4087 Mon Sep 17 00:00:00 2001
From: Tom Christie <tom@tomchristie.com>
Date: Wed, 3 Dec 2014 22:45:44 +0000
Subject: [PATCH] Improve nested update and create testing.

---
 rest_framework/serializers.py | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/rest_framework/serializers.py b/rest_framework/serializers.py
index b1175b5b1..c7f04b40c 100644
--- a/rest_framework/serializers.py
+++ b/rest_framework/serializers.py
@@ -633,8 +633,8 @@ class ModelSerializer(Serializer):
         # If we don't do this explicitly they'd likely get a confusing
         # error at the point of calling `Model.objects.create()`.
         assert not any(
-            isinstance(field, BaseSerializer) and not field.read_only
-            for field in self.fields.values()
+            isinstance(field, BaseSerializer) and (key in validated_attrs)
+            for key, field in self.fields.items()
         ), (
             'The `.create()` method does not suport nested writable fields '
             'by default. Write an explicit `.create()` method for serializer '
@@ -682,7 +682,7 @@ class ModelSerializer(Serializer):
     def update(self, instance, validated_attrs):
         assert not any(
             isinstance(field, BaseSerializer) and (key in validated_attrs)
-            for key, field in self.fields.values()
+            for key, field in self.fields.items()
         ), (
             'The `.update()` method does not suport nested writable fields '
             'by default. Write an explicit `.update()` method for serializer '