6

ユーザー プロファイル モデルを定義しましたが、すべてのユーザー データを両方のモデルに保存する 1 つの API エンドポイントが必要です。つまり、私はユーザーモデルを使用しており、次のように定義されたユーザープロファイルモデルを持っています

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

新しいユーザーを作成するためのシリアライザーを定義するとき、データをユーザー モデルと userProfile モデルの両方にシリアライズするにはどうすればよいですか?

4

1 に答える 1

18

次のように、それぞれにシリアライザーを定義し、一方を他方にアタッチするだけです。

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

その後、 を使用UserProfileSerializerして、ユーザー プロファイルとそのユーザー インスタンスを更新 (または他のアクションを実行) できます。

于 2013-05-08T02:04:46.710 に答える