from rest_framework import serializers from notification.models import Subscriber class SubscriberSerializer(serializers.ModelSerializer): email = serializers.CharField() locale = serializers.CharField(allow_null=True) country_code = serializers.CharField(allow_null=True) class Meta: model = Subscriber fields = ( "email", "locale", "country_code" ) def validate(self, data): data["email"] = self.get_email(data) data["locale"] = self.get_locale(data) data["country_code"] = self.get_country_code(data) return data def create(self, validated_data): inst, created = Subscriber.objects.get_or_create(**validated_data) return inst def get_email(self, obj): return obj["email"] def get_locale(self, obj): return obj["locale"] def get_country_code(self, obj): return obj["country_code"]