6

I have defined a user profile model, but want to have one api endpoint that saves all of the user data into both models. By that I mean, I am using the user model and I have a userprofile model defined as follows

class UserProfile(models.Model):
    user = models.OneToOneField(settings.AUTH_USER_MODEL)
    biography = models.TextField()

when I define a serializer for creating a new user, how do I get it to serialize data into both the user model, and the userProfile model?

1 Answer 1

18

You just need to define a serializer for each, and attach one to the other, as follows:

from rest_framework.serializers import ModelSerializer

class UserSerializer(ModelSerializer):
    """
    A serializer for ``User``.
    """
    class Meta(object):
        model = User


class UserProfileSerializer(ModelSerializer):
    """
    A serializer for ``UserProfile``.
    """
    user = UserSerializer()

    class Meta(object):
        model = UserProfile

You could then use UserProfileSerializer to update (or perform other actions to) a user profile and its user instance.

Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.