Я могу получить результат JSON ниже, используя django-rest-framework.Как перенести serializer.data в пользовательский экземпляр (поле) с Django Rest Framework
{
"id": 1,
"fieldA": 1,
"fieldB": 100
},
{
"id": 2,
"fieldA": 2,
"fieldB": 101
},
{
"id": 3,
"fieldA": 1,
"fieldB": 101
}
Я просто хочу изменить структуру на это.
{
"typeA":
{
"id": 1,
"fieldA": 1,
"fieldB": 100
}
},
{
"typeB":
{
"id": 2,
"fieldA": 2,
"fieldB": 100,
},
{
"id": 3,
"fieldA": 1,
"fieldB": 101,
}
}
typeA
включает в себя объекты, где fieldB == 100
и typeB
включает в себя объекты, где fieldB == 101
.
Я могу обрабатывать результаты, используя Objects.filter()
по адресу get_query_set()
в views.py. Поэтому вам не нужно заботиться об этом.
Ключом моего вопроса является то, как я могу вставить свое настроенное имя поля и перенести результаты на его дочерний уровень. В настоящее время, я думаю, решение будет связано с create()
и update()
функциями от создания сериализатора. Пожалуйста, дайте советы и подсказки.
Это моя model.py для получения дополнительной информации.
class Results(models.Model):
fieldA = models.ForeignKey(Model)
fieldB = models.ForeignKey(EplTeams, null=True)
views.py
class ResultsView(generics.ListAPIView):
serializer_class = ResultSerializer
def get_queryset(self):
typeA = Results.objects.filter(fieldB=100)
typeB = Results.objects.filter(fieldB=101)
queryset = list(itertools.chain(typeA, typeB))
return queryset
serializers.py
class ResultSerializer(serializers.ModelSerializer):
class Meta:
model = Results
спасибо, Кевин. –