Skip to content

Commit 5df008f

Browse files
committed
Add a comment, related to inline_serializer usage with drf-spectacular
- HackSoftware/Django-Styleguide#105 (comment)
1 parent 0427252 commit 5df008f

File tree

4 files changed

+6
-15
lines changed

4 files changed

+6
-15
lines changed

styleguide_example/common/tests/utils/test_inline_serializer.py renamed to styleguide_example/api/tests/utils/test_inline_serializer.py

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,8 @@
33

44
from rest_framework import serializers
55

6-
from styleguide_example.common.utils import inline_serializer, make_mock_object
6+
from styleguide_example.api.utils import inline_serializer
7+
from styleguide_example.common.utils import make_mock_object
78

89

910
class InlineSerializerTests(unittest.TestCase):

styleguide_example/api/utils.py

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,10 @@ def create_serializer_class(name, fields):
66

77

88
def inline_serializer(*, fields, data=None, **kwargs):
9+
# Important note if you are using `drf-spectacular`
10+
# Please refer to the following issue:
11+
# https://github.com/HackSoftware/Django-Styleguide/issues/105#issuecomment-1669468898
12+
# Since you might need to use unique names (uuids) for each inline serializer
913
serializer_class = create_serializer_class(name="inline_serializer", fields=fields)
1014

1115
if data is not None:

styleguide_example/common/utils.py

Lines changed: 0 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
from django.core.exceptions import ImproperlyConfigured
33
from django.http import Http404
44
from django.shortcuts import get_object_or_404
5-
from rest_framework import serializers
65

76

87
def make_mock_object(**kwargs):
@@ -20,19 +19,6 @@ def get_object(model_or_queryset, **kwargs):
2019
return None
2120

2221

23-
def create_serializer_class(name, fields):
24-
return type(name, (serializers.Serializer,), fields)
25-
26-
27-
def inline_serializer(*, fields, data=None, **kwargs):
28-
serializer_class = create_serializer_class(name="", fields=fields)
29-
30-
if data is not None:
31-
return serializer_class(data=data, **kwargs)
32-
33-
return serializer_class(**kwargs)
34-
35-
3622
def assert_settings(required_settings, error_message_prefix=""):
3723
"""
3824
Checks if each item from `required_settings` is present in Django settings

0 commit comments

Comments
 (0)