Skip to content

Commit 0b2e1d5

Browse files
authored
Merge pull request #6198 from Iamshankhadeep/expandable_fields_to_meta
moved expandable_fields to meta class
2 parents 24de7f2 + deb615a commit 0b2e1d5

File tree

1 file changed

+22
-30
lines changed

1 file changed

+22
-30
lines changed

readthedocs/api/v3/serializers.py

Lines changed: 22 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -115,15 +115,6 @@ class BuildSerializer(FlexFieldsModelSerializer):
115115
state = BuildStateSerializer(source='*')
116116
_links = BuildLinksSerializer(source='*')
117117

118-
expandable_fields = dict(
119-
config=(
120-
BuildConfigSerializer,
121-
dict(
122-
source='config',
123-
),
124-
),
125-
)
126-
127118
class Meta:
128119
model = Build
129120
fields = [
@@ -140,6 +131,10 @@ class Meta:
140131
'_links',
141132
]
142133

134+
expandable_fields = {
135+
'config': (BuildConfigSerializer, {'source': 'config'})
136+
}
137+
143138
def get_finished(self, obj):
144139
if obj.date and obj.length:
145140
return obj.date + datetime.timedelta(seconds=obj.length)
@@ -215,15 +210,6 @@ class VersionSerializer(FlexFieldsModelSerializer):
215210
urls = VersionURLsSerializer(source='*')
216211
_links = VersionLinksSerializer(source='*')
217212

218-
expandable_fields = dict(
219-
last_build=(
220-
BuildSerializer,
221-
dict(
222-
source='last_build',
223-
),
224-
),
225-
)
226-
227213
class Meta:
228214
model = Version
229215
fields = [
@@ -241,6 +227,12 @@ class Meta:
241227
'_links',
242228
]
243229

230+
expandable_fields = {
231+
'last_build': (
232+
BuildSerializer, {'source': 'last_build'}
233+
)
234+
}
235+
244236
def get_downloads(self, obj):
245237
downloads = obj.get_downloads()
246238
data = {}
@@ -448,18 +440,6 @@ class ProjectSerializer(FlexFieldsModelSerializer):
448440
created = serializers.DateTimeField(source='pub_date')
449441
modified = serializers.DateTimeField(source='modified_date')
450442

451-
expandable_fields = dict(
452-
active_versions=(
453-
VersionSerializer,
454-
dict(
455-
# NOTE: this has to be a Model method, can't be a
456-
# ``SerializerMethodField`` as far as I know
457-
source='active_versions',
458-
many=True,
459-
),
460-
),
461-
)
462-
463443
class Meta:
464444
model = Project
465445
fields = [
@@ -489,6 +469,18 @@ class Meta:
489469
'_links',
490470
]
491471

472+
expandable_fields = {
473+
'active_versions': (
474+
VersionSerializer,
475+
{
476+
# NOTE: this has to be a Model method, can't be a
477+
# ``SerializerMethodField`` as far as I know
478+
'source': 'active_versions',
479+
'many': True,
480+
}
481+
)
482+
}
483+
492484
def get_homepage(self, obj):
493485
# Overridden only to return ``None`` when the project_url is ``''``
494486
return obj.project_url or None

0 commit comments

Comments
 (0)