From abcd832591adf22bb6fea5d8a6c092852907e4c2 Mon Sep 17 00:00:00 2001 From: Paul Konstantin Gerke Date: Thu, 25 Aug 2022 11:46:12 +0200 Subject: [PATCH] Serialize full profile page --- api/serializers.py | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/api/serializers.py b/api/serializers.py index 70a873ab..a6981af1 100644 --- a/api/serializers.py +++ b/api/serializers.py @@ -272,6 +272,37 @@ class WeightSerializer(CoreModelSerializer, TaggableSerializer): class ProfileSerializer(serializers.ModelSerializer): + api_key = serializers.SerializerMethodField("get_api_key") + first_name = serializers.SerializerMethodField("get_first_name") + last_name = serializers.SerializerMethodField("get_last_name") + email = serializers.SerializerMethodField("get_email") + staff = serializers.SerializerMethodField("is_staff") + + def get_api_key(self, value): + return self.instance.api_key().key + + def get_first_name(self, value): + return self.instance.user.first_name + + def get_last_name(self, value): + return self.instance.user.last_name + + def get_email(self, value): + return self.instance.user.email + + def is_staff(self, value): + return self.instance.user.is_staff + class Meta: model = babybuddy_models.Settings - fields = ("user", "language") + fields = ( + "user", + "first_name", + "last_name", + "email", + "staff", + "language", + "timezone", + "api_key", + ) + extra_kwargs = {k: {"read_only": True} for k in fields}