From 7494d7c4a92f3dae98280af3533d1c6f66ebde84 Mon Sep 17 00:00:00 2001 From: Mahdi Date: Wed, 12 Apr 2023 20:12:52 +0330 Subject: [PATCH 1/3] Refactor get_field_info method to include max_digits and decimal_places attributes in SimpleMetadata class --- rest_framework/metadata.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/rest_framework/metadata.py b/rest_framework/metadata.py index 015587897d..68e6161b6d 100644 --- a/rest_framework/metadata.py +++ b/rest_framework/metadata.py @@ -124,7 +124,8 @@ def get_field_info(self, field): attrs = [ 'read_only', 'label', 'help_text', 'min_length', 'max_length', - 'min_value', 'max_value' + 'min_value', 'max_value', + 'max_digits', 'decimal_places', ] for attr in attrs: From 0392d954701c03decfec3bfb8b508a52b2f78bd5 Mon Sep 17 00:00:00 2001 From: Mahdi Date: Thu, 13 Apr 2023 15:01:00 +0330 Subject: [PATCH 2/3] Add new test to check decimal_field_info_type --- tests/test_metadata.py | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/tests/test_metadata.py b/tests/test_metadata.py index 4abc0fc07e..1bdc8697c4 100644 --- a/tests/test_metadata.py +++ b/tests/test_metadata.py @@ -324,6 +324,13 @@ def test_related_field_choices(self): ) assert 'choices' not in field_info + def test_decimal_field_info_type(self): + options = metadata.SimpleMetadata() + field_info = options.get_field_info(serializers.DecimalField(max_digits=18, decimal_places=4)) + assert field_info['type'] == 'decimal' + assert field_info['max_digits'] == 18 + assert field_info['decimal_places'] == 4 + class TestModelSerializerMetadata(TestCase): def test_read_only_primary_key_related_field(self): From 721df598cc6a03e8c9d710547a39d2527c9ab506 Mon Sep 17 00:00:00 2001 From: Asif Saif Uddin Date: Thu, 13 Apr 2023 21:50:38 +0600 Subject: [PATCH 3/3] Update rest_framework/metadata.py --- rest_framework/metadata.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/rest_framework/metadata.py b/rest_framework/metadata.py index 68e6161b6d..c400b1b79e 100644 --- a/rest_framework/metadata.py +++ b/rest_framework/metadata.py @@ -125,7 +125,7 @@ def get_field_info(self, field): 'read_only', 'label', 'help_text', 'min_length', 'max_length', 'min_value', 'max_value', - 'max_digits', 'decimal_places', + 'max_digits', 'decimal_places' ] for attr in attrs: