首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >DRF SERILAZATION

DRF SERILAZATION
EN

Stack Overflow用户
提问于 2022-06-14 18:50:45
回答 1查看 45关注 0票数 -1

我用ProductSerializer()在OrderItemSerializer()中序列化了名为"product“的字段。

这就是我想要的。

代码语言:javascript
复制
class OrderItemSerializer(serializers.ModelSerializer):
    product = ProductSerializer()

    class Meta:
        model = models.OrderItem
        fields = ('id','order', 'product', 'quantity')

输出为;

但是,当我尝试使用POST方法请求时,只提供id值是不够的。

如何通过只发送id值来发布?

我还没有写任何关于这次手术的文章。默认ModelViewSet

代码语言:javascript
复制
class OrderItemViewSet(ModelViewSet):
    queryset = OrderItem.objects.all()
    serializer_class = serializers.OrderItemSerializer
    permission_classes = (IsOwnerOrNot, IsAuthenticated)

    def get_queryset(self):
        user = self.request.user
        return self.filter_queryset(queryset=self.queryset.filter(order__user=self.request.user))
EN

回答 1

Stack Overflow用户

发布于 2022-06-14 20:35:18

如果您支持可写嵌套表示,则需要编写处理保存多个对象的.create()或.update()方法。

代码语言:javascript
复制
class UserSerializer(serializers.ModelSerializer):
    profile = ProfileSerializer()

    class Meta:
        model = User
        fields = ['username', 'email', 'profile']

    def create(self, validated_data):
        profile_data = validated_data.pop('profile')
        user = User.objects.create(**validated_data)
        Profile.objects.create(user=user, **profile_data)
        return user
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/72622022

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档