Skip to content

Commit 4d30cc8

Browse files
committed
Moved meta logic into function. Moved name in Authors and some small fixes
1 parent e5d3193 commit 4d30cc8

File tree

4 files changed

+20
-17
lines changed

4 files changed

+20
-17
lines changed

AUTHORS

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@ Matt Layman <https://www.mattlayman.com>
2323
Michael Haselton <[email protected]>
2424
Mohammed Ali Zubair <[email protected]>
2525
Nathanael Gordon <[email protected]>
26+
Nick Kozhenin <[email protected]>
2627
Ola Tarkowska <[email protected]>
2728
Oliver Sauder <[email protected]>
2829
Raphael Cohen <[email protected]>
@@ -36,4 +37,3 @@ Tim Selman <[email protected]>
3637
Tom Glowka <[email protected]>
3738
Ulrich Schuster <[email protected]>
3839
Yaniv Peer <[email protected]>
39-
Nick Kozhenin <[email protected]>

example/models.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
# -*- encoding: utf-8 -*-
22
from __future__ import unicode_literals
33

4-
from datetime import datetime
54
from django.contrib.contenttypes.fields import GenericForeignKey, GenericRelation
65
from django.contrib.contenttypes.models import ContentType
76
from django.db import models
@@ -131,9 +130,6 @@ def __str__(self):
131130
class Meta:
132131
ordering = ("id",)
133132

134-
def modified_days_ago(self):
135-
return (datetime.now() - self.modified_at).days
136-
137133

138134
class ProjectType(BaseModel):
139135
name = models.CharField(max_length=50)

example/serializers.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -281,7 +281,7 @@ def get_first_entry(self, obj):
281281
return obj.entries.first()
282282

283283
def get_initials(self, obj):
284-
return " ".join([word[0] for word in [obj.name]])
284+
return "".join([word[0] for word in obj.name.split(" ")])
285285

286286

287287
class AuthorListSerializer(AuthorSerializer):
@@ -304,7 +304,7 @@ class Meta:
304304
class CommentSerializer(serializers.ModelSerializer):
305305
# testing remapping of related name
306306
writer = relations.ResourceRelatedField(source="author", read_only=True)
307-
modified_days_ago = serializers.IntegerField(read_only=True)
307+
modified_days_ago = serializers.SerializerMethodField()
308308

309309
included_serializers = {
310310
"entry": EntrySerializer,
@@ -321,6 +321,9 @@ class Meta:
321321
# fields = ('entry', 'body', 'author',)
322322
meta_fields = ("modified_days_ago",)
323323

324+
def get_modified_days_ago(self, obj):
325+
return (datetime.now() - obj.modified_at).days
326+
324327

325328
class ProjectTypeSerializer(serializers.ModelSerializer):
326329
class Meta:

rest_framework_json_api/renderers.py

Lines changed: 14 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -378,11 +378,9 @@ def extract_included(
378378
included_cache[new_item["type"]][
379379
new_item["id"]
380380
] = utils.format_field_names(new_item)
381-
meta = cls.extract_meta(field, serializer_resource)
382-
if meta:
383-
included_cache[new_item["type"]][new_item["id"]][
384-
"meta"
385-
] = utils.format_field_names(meta)
381+
cls.add_meta_to_included(
382+
included_cache, field, serializer_resource, new_item
383+
)
386384
cls.extract_included(
387385
serializer_fields,
388386
serializer_resource,
@@ -407,11 +405,9 @@ def extract_included(
407405
included_cache[new_item["type"]][
408406
new_item["id"]
409407
] = utils.format_field_names(new_item)
410-
meta = cls.extract_meta(field, serializer_data)
411-
if meta:
412-
included_cache[new_item["type"]][new_item["id"]][
413-
"meta"
414-
] = utils.format_field_names(meta)
408+
cls.add_meta_to_included(
409+
included_cache, field, serializer_data, new_item
410+
)
415411
cls.extract_included(
416412
serializer_fields,
417413
serializer_data,
@@ -420,6 +416,14 @@ def extract_included(
420416
included_cache,
421417
)
422418

419+
@classmethod
420+
def add_meta_to_included(cls, included_cache, field, resource, new_item):
421+
meta = cls.extract_meta(field, resource)
422+
if meta:
423+
included_cache[new_item["type"]][new_item["id"]][
424+
"meta"
425+
] = utils.format_field_names(meta)
426+
423427
@classmethod
424428
def extract_meta(cls, serializer, resource):
425429
"""

0 commit comments

Comments
 (0)