小编Arj*_*ngh的帖子

Django ORM 分别查询正值和负值之和

我在数据库中有一个列,我们将其称为 dummy_column。它有正值和负值。我想计算所有正数的总和以及所有负数的总和以及总和(正+负),即我想要输出 3 个单独的值。

可以使用 Sum('dummy_column') 计算两者的总和

尝试使用 Case 和 When,但无法理解在“then”子句中放入什么内容。

看到这个相关的答案,但我想避免“额外”。- ' Django 查询集 SUM 正值和负值'

代码写得不多,所以就没有写了。任何帮助,将不胜感激。

django django-orm python-3.x

4
推荐指数
1
解决办法
1800
查看次数

休息框架序列化程序方法字段

class BagSerializer(serializers.ModelSerializer):
    order_date = serializers.SerializerMethodField()

    class Meta:
        model = Bag
        fields = ('order_date')

    def get_order_date(self, obj):
        print('Order date called', obj)
Run Code Online (Sandbox Code Playgroud)

这是视图:

class BagViewSet(viewsets.ModelViewSet):
queryset = Bag.objects.all()
serializer_class = BagSerializer

    def create(self, request):
        try:
            print('Inside create viewset')
            serializer = self.get_serializer(data=request.data)
            if serializer.is_valid():
                print('serializer passed', serializer.validated_data)
            else:
                print('Serializer failed', serializer.errors)
                return Response(serializer.errors)
        except Exception as e:
        print('exception raised--------', e)
    return Response('Boom')
Run Code Online (Sandbox Code Playgroud)

序列化器方法字段未被调用,其数据也未显示在validated_data 中,并且序列化器的is_valid() 方法返回True。为什么不考虑序列化方法字段

django python-3.x django-rest-framework

3
推荐指数
1
解决办法
3817
查看次数

Django Postgres JSONField 查询

我有一个包含 json 字段的类

class A(models.Model)
    brand = JSONField()
Run Code Online (Sandbox Code Playgroud)

如果我发布像 [{'brand_id:1', 'name':'b1'}, {'brand_id:2', 'name':'b2'}] 这样的 JSON 数组,它会存储为 JSON 数组。这很好用。

我应该如何查询以检查该数组中任何字典的brand_id中是否存在“1”?

django postgresql python-3.x django-rest-framework

1
推荐指数
1
解决办法
3269
查看次数