【发布时间】:2018-12-29 11:01:27
【问题描述】:
我有一个名为 Profile 的模型,它是 Django 的 User 模型的包装器。现在,我通过以下方式创建了一个ProfileSerializer:
class UserSerializer(serializers.ModelSerializer):
class Meta:
model = User
fields = ('first_name', 'last_name', 'email', 'password')
class ProfileSerializer(serializers.ModelSerializer):
user = UserSerializer(required=True)
def create(self, validated_data):
user_data = validated_data.pop('user')
user = User.objects.create_user(**user_data, username=validated_data.get('username'))
profile = Profile.objects.create(user=user, **validated_data)
return profile
def update(self, instance, validated_data):
instance.dob = validated_data.get('dob', instance.dob)
instance.karma = validated_data.get('karma', instance.karma)
instance.username = validated_data.get('username', instance.username)
user_data = validated_data.pop('user')
instance.user.first_name = user_data.get('first_name', instance.user.first_name)
instance.user.last_name = user_data.get('last_name', instance.user.last_name)
instance.user.email = user_data.get('email', instance.user.email)
instance.user.username = instance.username
new_password = user_data.get('password')
if new_password:
instance.user.set_password(new_password)
instance.user.save()
instance.save()
return instance
class Meta:
model = Profile
fields = '__all__'
这里的问题是,当我尝试 DELETE 个人资料时,个人资料将被删除,但用户仍然存在。当发出 DELETE 请求时,我还需要能够删除用户。
我尝试进行一些搜索,但我找不到 destroy 或 delete 的 ModelSerializer 方法。
【问题讨论】:
-
提及 Django 版本并包含模型
标签: django serialization http-delete