4

Django Rest Framework を使用してユーザーを削除すると、関連する UserProfile オブジェクトも削除されます。逆の関係もあるといいのですが。これどうやってするの?

ユーザーのプロファイルを表す Django モデルがあります。

class UserProfile(models.Model):
    user = models.OneToOneField(User, related_name='profile')
    preferred_name = models.CharField(max_lengths=100)
    #other fields here

ここに私の見解があります:

class UserDetail(generics.RetrieveUpdateDestroyAPIView):
    """ 
    API endpoint that represents a single user.
    """
    model = User
    serializer_class = UserSerializer

class UserProfileDetail(generics.RetrieveUpdateDestroyAPIView):
    """ 
    API endpoint that represents a single UserProfile
    """
    model = UserProfile
    serializer_class = UserProfileSerializer

そしてシリアライザ:

class UserSerializer(serializers.HyperlinkedModelSerializer):
    profile = serializers.HyperlinkedRelatedField(view_name = 'userprofile-detail')

    class Meta:
        model = User
        fields = ('url', 'username', 'email', 'profile')

class UserProfileSerializer(serializers.HyperlinkedModelSerializer):

    class Meta:
        model = UserProfile
        fields = ('url', 'preferred_name', 'user')
4

1 に答える 1

2

次のように、UserProfile クラスで delete メソッドを上書きできます。

class UserProfile(models.Model):
    user = models.OneToOneField(User, related_name='profile')
    preferred_name = models.CharField(max_lengths=100)
    #other fields here
    def delete(self, *args, **kwargs):
        self.user.delete()
        super(UserProfile, self).delete(*args, **kwargs)
于 2013-06-01T17:23:42.093 に答える