Django-REST-framework在视图中将两个查询的结果合并返回给前端
时间: 2023-12-27 15:01:57 浏览: 102
你可以使用Python中的`chain`函数将两个查询集合并在一起,然后将结果序列化并返回给前端。
以下是一个示例代码:
```python
from itertools import chain
from rest_framework.response import Response
from rest_framework.views import APIView
from .models import Model1, Model2
from .serializers import Model1Serializer, Model2Serializer
class CombinedDataView(APIView):
def get(self, request, *args, **kwargs):
model1_data = Model1.objects.all()
model2_data = Model2.objects.all()
combined_data = list(chain(model1_data, model2_data))
serializer = Model1Serializer(combined_data, many=True)
return Response(serializer.data)
```
在上面的代码中,我们首先导入了`chain`函数和所需的模型和序列化器。然后,在`get`方法中,我们将两个查询集合并在一起,并对其进行序列化。最后,我们将序列化后的数据作为响应返回给前端。
请注意,在这个示例中,我们使用了`Model1Serializer`来序列化合并后的数据。你可以根据你的需求选择合适的序列化器。
阅读全文