我有一个关于Django 睡觉的问题-完整的框架.

当产品渲染到远程客户端时,每个产品都获取一个包含过滤数据的字段.

例如,模型可能是这样的.

 class Product(models.Model):
      name = models.CharField()

 class Like(models.Model):
      product = models.ForeignKey(Product, related_name="likes")

在客户机上,每likes件产品的价值都是真实的,而不是虚假的.

因此,我try 在序列化程序中使用以下代码.

class ProductSerializer(serializers.ModelSerializer):

    likes = serializers.PrimaryKeyRelatedField(many=True, queryset=Like.objects.filter(whether_like=True))

    class Meta:
        model = Product
        fields = ('id', 'name', 'likes')

但是,这并不像我想要的那样起作用.

我该怎么办呢?

下面是额外的视图代码.

@api_view(['GET'])
def product_list(request, user_id, format=None):

    if request.method == 'GET':
        products = Product.objects.all()
        serializer = ProductSerializer(products, many=True)

        return Response(serializer.data)

推荐答案

不如这样吧:

class ProductSerializer(serializers.ModelSerializer):
    likes = serializers.SerializerMethodField()

    def get_likes(self, product):
        qs = Like.objects.filter(whether_like=True, product=product)
        serializer = LikeSerializer(instance=qs, many=True)
        return serializer.data

    class Meta:
        model = Product
        fields = ('id', 'name', 'likes')

**为简短起见,省略LikeSerializer个.希望这能帮上忙.

Django相关问答推荐

Django中的设计用户类

Django www.example.com从常量列表中删除值

Django相关对象引用模板

管理器不能通过对象上的对象实例访问.保存()

如何从基于类的视图将用户保存在 django 模型中

如何在Django模板中有条件地传递值给with变量?

从一个组中获取所有用户 - Django

来自 Django 应用程序的日志(log)消息未上传到 AWS CloudWatch

组织大型 Django 元素的指南

Django - 将 HTML 输出转换为变量

Django InlineModelAdmin:部分显示内联模型并链接到完整模型

可插拔应用程序的Django默认设置约定?

TestCase 类中的 setUpClass、setUpTestData 和 setUp 有什么区别?

如何在 Django 中向 ChoiceField 添加class?

Django:在管理界面中显示图像

Django中的自定义排序

AssertionError: `HyperlinkedIdentityField` 需要序列化程序上下文中的请求

get_or_create() 是否必须立即保存?

如何在 django 中将多张图片上传到博客文章

如何在 Django 中创建一个非空的 CharField?