Я пытаюсь сериализовать модель для отображения на существующем интерфейсе интерфейса. Модель настроена так:
class Timevalue(models.Model):
time = models.FloatField(blank=True, null=True)
values = JSONField(blank=True, null=True)
Природа values
заключается в том, что у него нет определенных ключей, поэтому он использует JSON, а не структурированную схему. В результате мне нужно перезапустить RestAPI, чтобы вывести список объектов с временным значением, который сплющен, так что каждый элемент содержит ключ time
, а также все ключи для values
.
Пока что я написал следующий сериализатор, который может возвращать данные в формате [{'time': 0.01, 'values': {'value1': 1, 'value2': 2, 'value3': 3}}]
class TimevalueSerializer(serializers.Serializer):
time = serializers.FloatField()
values = serializers.JSONField()
Однако я не могу добиться вывода в необходимом формате: [{'time': 0.01, 'value1': 1, 'value2': 2, 'value3': 3}]
.
Я пробовал следующую настройку сериализатора:
class TimevaluechildSerializer(serializers.Serializer):
fields = '*'
class TimevalueSerializer(serializers.Serializer):
time = serializers.FloatField()
values = TimevaluechildSerializer('*')
но я не могу понять, что передать дочернему сериализатору, чтобы он возвращал все пары ключ-значение.
Поскольку эта модель используется для других видов, я предпочитаю использовать Serializer, а не ModelSerializer.
Надеюсь, ответ не слишком сложный.
Stu