mirror of
https://github.com/django/django.git
synced 2025-10-24 14:16:09 +00:00
Fixed #33937 -- Optimized serialization of related m2m fields without natural keys.
This commit is contained in:
committed by
Mariusz Felisiak
parent
604fadde11
commit
19e0587ee5
@@ -410,6 +410,33 @@ class SerializersTestBase:
|
||||
self.assertEqual(self._get_field_values(child_data, "parent_m2m"), [])
|
||||
self.assertEqual(self._get_field_values(child_data, "parent_data"), [])
|
||||
|
||||
def test_serialize_only_pk(self):
|
||||
with self.assertNumQueries(5) as ctx:
|
||||
serializers.serialize(
|
||||
self.serializer_name,
|
||||
Article.objects.all(),
|
||||
use_natural_foreign_keys=False,
|
||||
)
|
||||
|
||||
categories_sql = ctx[1]["sql"]
|
||||
self.assertNotIn(connection.ops.quote_name("meta_data_id"), categories_sql)
|
||||
meta_data_sql = ctx[2]["sql"]
|
||||
self.assertNotIn(connection.ops.quote_name("kind"), meta_data_sql)
|
||||
|
||||
def test_serialize_no_only_pk_with_natural_keys(self):
|
||||
with self.assertNumQueries(5) as ctx:
|
||||
serializers.serialize(
|
||||
self.serializer_name,
|
||||
Article.objects.all(),
|
||||
use_natural_foreign_keys=True,
|
||||
)
|
||||
|
||||
categories_sql = ctx[1]["sql"]
|
||||
self.assertNotIn(connection.ops.quote_name("meta_data_id"), categories_sql)
|
||||
# CategoryMetaData has natural_key().
|
||||
meta_data_sql = ctx[2]["sql"]
|
||||
self.assertIn(connection.ops.quote_name("kind"), meta_data_sql)
|
||||
|
||||
|
||||
class SerializerAPITests(SimpleTestCase):
|
||||
def test_stream_class(self):
|
||||
|
||||
Reference in New Issue
Block a user