Как добавить динамическое поле в 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