diff --git a/src/account/serializers.py b/src/account/serializers.py index fd724fb59c351b4cb2bf771edd845b12ebb92f5a..8921477b79c828d41f68a10edf55985f3054bccf 100644 --- a/src/account/serializers.py +++ b/src/account/serializers.py @@ -1,21 +1,49 @@ from rest_framework import serializers -from . import models +from account.models import Profile class ProfileSerializer(serializers.ModelSerializer): class Meta: - model = models.Profile + model = Profile fields = '__all__' class ProfileCreateSerializer(serializers.ModelSerializer): + first_name = serializers.CharField() + last_name = serializers.CharField() + email = serializers.EmailField() + # Create a custom method field + current_user = serializers.SerializerMethodField('_user') + class Meta: - model = models.Profile + model = Profile fields = [ - 'user.username', + 'current_user', + 'first_name', + 'last_name', + 'email', 'nick', 'pref_group', 'signed', ] - # def create(self, *args, **kwargs, obj): + def _user(self, obj): + user = self.context['request'].user + return user + + def create(self, validated_data): + #user.first_name = validated_data['first_name'] + #user.last_name = validated_data['last_name'] + #user.email = validated_data['email'] + #user.save() + nick = validated_data['nick'] + pref_group = validated_data['pref_group'] + signed = validated_data['signed'] + profile_obj = Profile( + user=user, + nick=nick, + pref_group=pref_group, + signed=signed, + ) + profile_obj.save() + return validated_data