Как добавить динамическое поле в django.core.serializers.serialize

Я пытаюсь экспортировать набор запросов в формат json. Однако мой запрос имеет динамическое поле (т.е. не определенное в модели), и когда я пытаюсь добавить его, ничего не отображается.

Моя модель:

class MyModel(models.Model):
    id = models.TextField(primary_key=True, blank=True)
    quantity = models.IntegerField(null=True, blank=True)
    rate = models.IntegerField(null=True, blank=True)

    class Meta:
        managed = False

Мой набор запросов:

qs = MyModel.objects.filter(id=id).annotate(result=F('rate') * F('quantity'))

Мой звонок:


class ClassName:
    @classmethod
    def build__json(cls, queryset):
        geojson_str = serialize('json',
                                  queryset,
                                  fields=('result')
                                        )

        my_geojson = json.loads(geojson_str)
        return my_geojson

qs_json = ClassName.build_json(qs)

Есть ли способ использовать serialize для этого? Или мне нужно написать собственный класс?

PS: Я не строю представление, просто пытаюсь преобразовать queryset в json.

Заранее спасибо

Я думаю, это решит вашу проблему

serializers.py

class Serializer(serializers.ModelSerializer):
    ...
    rate_quantity = serializers.CharField(read_only=True, source="rate_quantity_value")

models.py

    @property
    def rate_quantity_value(self):
        return rate * quantity
Вернуться на верх