我一直在努力弄清楚如何使用 django rest 框架执行以下操作。我有一个用户配置文件模型,它有一个外键绑定到用户表:
class UserProfile(models.Model):
role = models.CharField(max_length=255, verbose_name='Role', choices=(('Administrator', 'Administrator'), ('User', 'User'), ('Warehouse Staff', 'Warehouse Staff')))
adwebsite = models.ManyToManyField('ads.AdWebsite', null=True, blank=True)
user = models.OneToOneField(User, editable=False, related_name='profile')
我正在使用以下序列化程序:
class UserProfileSerializer(serializers.ModelSerializer):
adwebsite = serializers.PrimaryKeyRelatedField(many=True)
class Meta:
model = UserProfile
fields = ('role', 'mobile', 'phone', 'adwebsite', 'terms_and_conditions')
class UserSerializer(serializers.HyperlinkedModelSerializer):
groups = serializers.PrimaryKeyRelatedField(many=True)
class Meta:
model = User
fields = ('url', 'username', 'email', 'groups', 'first_name', 'last_name', 'is_active', 'is_staff', 'profile')
depth = 1
如果我执行 GET 请求,我可以从配置文件关系中获取所有信息。如果我执行 PUT,它会更新User模型,但不会更新UserProfile模型。我去服务器的payload是正确的,没有报错,但是没有保存userprofile信息。
有什么我做错了吗?