mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-02-21 14:05:16 +03:00
Merge pull request #1318 from sheppard/generic-dj16
saving nested generic relation serializers broken in django 1.6
This commit is contained in:
commit
2921455ea7
|
@ -894,7 +894,7 @@ class ModelSerializer(Serializer):
|
||||||
m2m_data[field_name] = attrs.pop(field_name)
|
m2m_data[field_name] = attrs.pop(field_name)
|
||||||
|
|
||||||
# Forward m2m relations
|
# Forward m2m relations
|
||||||
for field in meta.many_to_many:
|
for field in meta.many_to_many + meta.virtual_fields:
|
||||||
if field.name in attrs:
|
if field.name in attrs:
|
||||||
m2m_data[field.name] = attrs.pop(field.name)
|
m2m_data[field.name] = attrs.pop(field.name)
|
||||||
|
|
||||||
|
|
|
@ -69,6 +69,35 @@ class TestGenericRelations(TestCase):
|
||||||
}
|
}
|
||||||
self.assertEqual(serializer.data, expected)
|
self.assertEqual(serializer.data, expected)
|
||||||
|
|
||||||
|
def test_generic_nested_relation(self):
|
||||||
|
"""
|
||||||
|
Test saving a GenericRelation field via a nested serializer.
|
||||||
|
"""
|
||||||
|
|
||||||
|
class TagSerializer(serializers.ModelSerializer):
|
||||||
|
class Meta:
|
||||||
|
model = Tag
|
||||||
|
exclude = ('content_type', 'object_id')
|
||||||
|
|
||||||
|
class BookmarkSerializer(serializers.ModelSerializer):
|
||||||
|
tags = TagSerializer()
|
||||||
|
|
||||||
|
class Meta:
|
||||||
|
model = Bookmark
|
||||||
|
exclude = ('id',)
|
||||||
|
|
||||||
|
data = {
|
||||||
|
'url': 'https://docs.djangoproject.com/',
|
||||||
|
'tags': [
|
||||||
|
{'tag': 'contenttypes'},
|
||||||
|
{'tag': 'genericrelations'},
|
||||||
|
]
|
||||||
|
}
|
||||||
|
serializer = BookmarkSerializer(data=data)
|
||||||
|
self.assertTrue(serializer.is_valid())
|
||||||
|
serializer.save()
|
||||||
|
self.assertEqual(serializer.object.tags.count(), 2)
|
||||||
|
|
||||||
def test_generic_fk(self):
|
def test_generic_fk(self):
|
||||||
"""
|
"""
|
||||||
Test a relationship that spans a GenericForeignKey field.
|
Test a relationship that spans a GenericForeignKey field.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user