SerializerMethodField
from the Django Rest Framework docs:from django.contrib.auth.models import User
from django.utils.timezone import now
from rest_framework import serializers
class UserSerializer(serializers.ModelSerializer):
days_since_joined = serializers.SerializerMethodField()
class Meta:
model = User
def get_days_since_joined(self, obj):
return (now() - obj.date_joined).days
get_
stuff hurts your soul like it does to mine, there’s simpler way to do this.class SerializerLambdaField(SerializerMethodField):
def bind(self, field_name, parent):
super(SerializerMethodField, self).bind(field_name, parent)
def to_representation(self, data):
return self.method_name(data)
class UserSerializer(serializers.ModelSerializer):
days_since_joined = SerializerLambdaField(lambda obj: (now() - obj.date_joined).days)
class Meta:
model = User