From 03a9137abd2ed69c4a8fc1784cfce2d7ce444f23 Mon Sep 17 00:00:00 2001 From: Andrey Kolpakov Date: Mon, 7 Dec 2015 13:26:10 +0100 Subject: [PATCH 1/2] test case for #3598 --- tests/test_model_serializer.py | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index 57e540e7a5..3186165c91 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -19,6 +19,7 @@ from django.db import models from django.test import TestCase from django.utils import six +from django.http import QueryDict from rest_framework import serializers from rest_framework.compat import DurationField as ModelDurationField @@ -899,3 +900,35 @@ class Meta: serializer = TestSerializer() assert len(serializer.fields['decimal_field'].validators) == 2 + + +class Issue3598TestCase(TestCase): + def test_queryset_all(self): + class TestRelationSerializer(serializers.ModelSerializer): + class Meta: + model = RelationalModel + fields = ('many_to_many', ) + + class TestSerializer(serializers.ModelSerializer): + reverse_foreign_key = TestRelationSerializer(required=False) + + class Meta: + model = ForeignKeyTargetModel + + new_many_to_many = [ + ManyToManyTargetModel.objects.create( + name='new many_to_many (%d)' % idx + ) for idx in range(3) + ] + + data = QueryDict('name=test&' + '&'.join(['reverse_foreign_key.many_to_many=%s' % item.pk for item in new_many_to_many])) + + serializer = TestSerializer(data=data) + assert serializer.is_valid() + + expected_data = { + 'name': 'test', + 'reverse_foreign_key': {'many_to_many': [item.pk for item in new_many_to_many]} + } + + self.assertEqual(serializer.data, expected_data) From d1f5d7d12160478f9e1254ebbd655b321d7633f8 Mon Sep 17 00:00:00 2001 From: Andrey Kolpakov Date: Mon, 7 Dec 2015 13:38:27 +0100 Subject: [PATCH 2/2] fix flake8 --- tests/test_model_serializer.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tests/test_model_serializer.py b/tests/test_model_serializer.py index 3186165c91..3b6af9ae39 100644 --- a/tests/test_model_serializer.py +++ b/tests/test_model_serializer.py @@ -17,9 +17,9 @@ MaxValueValidator, MinLengthValidator, MinValueValidator ) from django.db import models +from django.http import QueryDict from django.test import TestCase from django.utils import six -from django.http import QueryDict from rest_framework import serializers from rest_framework.compat import DurationField as ModelDurationField @@ -928,7 +928,7 @@ class Meta: expected_data = { 'name': 'test', - 'reverse_foreign_key': {'many_to_many': [item.pk for item in new_many_to_many]} + 'reverse_foreign_key': {'many_to_many': [item.pk for item in new_many_to_many]} } self.assertEqual(serializer.data, expected_data) pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy