我正在使用
django rest框架来输出文章的内容.它工作得很精彩,除了现在我想修改行为不返回完整的“内容”,而是一个预告片(比如内容的前200个字符,但理想情况下我希望能够添加任何逻辑,比如说200个字符后的第一句结尾):
class ArticleSerializer(serializers.HyperlinkedModelSerializer):
user = UserSerializer(many=False, read_only=True)
class Meta:
model = models.Article
fields = (
'id'
,'title'
, 'date_added'
, 'content'
, 'user'
)
我看了GenericAPIView,我认为可能有一些东西要覆盖 – 但没有什么看起来很明显 – 有人可以提供一些见解吗?先感谢您
最佳答案 我很确定你需要的是:
http://django-rest-framework.org/api-guide/fields.html#serializermethodfield
class ArticleSerializer(serializers.HyperlinkedModelSerializer):
user = UserSerializer(many=False, read_only=True)
teaser = serializers.SerializerMethodField('get_teaser')
class Meta:
model = models.Article
fields = (
'id'
,'title'
, 'date_added'
, 'user'
, 'teaser'
)
def get_teaser(self, obj):
return force_text(obj.content[:20])