Skip to content

Instantly share code, notes, and snippets.

@bibhuticoder
Created December 20, 2018 11:49
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save bibhuticoder/0623256da3b0b2b4cd801283bd0f2b42 to your computer and use it in GitHub Desktop.
Save bibhuticoder/0623256da3b0b2b4cd801283bd0f2b42 to your computer and use it in GitHub Desktop.
class PostListSerializer(serializers.Serializer):
slug = serializers.SerializerMethodField()
title = serializers.SerializerMethodField()
excerpt = serializers.SerializerMethodField()
# get translation to generate slug, title and excerpt
translation = None
def get_translation(self, post):
self.translation = post.translations.order_by('created_at').only('title', 'content')[0]
def get_title(self, obj):
if(self.translation is None):
self.get_translation(obj)
return self.translation.title
def get_slug(self, obj):
if(self.translation is None):
self.get_translation(obj)
return slugify(self.translation.title, obj.id)
def get_excerpt(self, obj):
if(self.translation is None):
self.get_translation(obj)
return get_excerpt(self.translation.content)[:100]
class Meta:
fields = (
'slug',
'title',
'excerpt',
'created_at'
)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment