私はすでにこの質問をしましたが、誰も答えませんでした。Django について私よりもよく知っている (私は何も知らない) 人が問題を簡単に解決できると確信しているので、もう一度質問します。検索ツールがあります。これを使用すると、5 つの Django モデルが検索され、5 つの GET 要求が REST API に送信されます。厄介なのは、コンソールに 5 つのリクエストが表示されることです。これら 5 つのリクエストを「混ぜて」単一のリクエストとして表示する方法はありますか? または、複数のモデルで単一のリクエストを行う方法はありますか? 私に教えてください。
編集:クエリを実行している私のビューの例:
class ProjectList(generics.ListCreateAPIView):
serializer_class = ProjectSerializer #My serializer
def get_queryset(self):
queryset = Project.objects.filter(user=self.request.user)
query = self.request.QUERY_PARAMS.get('query', None)
# Perf enhancements :
queryset = queryset.prefetch_related('user', 'tasks')
# ---
if query is not None:
queryset = queryset.filter(
Q(name__icontains=query) |
Q(created_on__icontains=query)).order_by('name')
return queryset
def pre_save(self, obj):
obj.user = self.request.user #This links the project to an user
#Don't think it's useful here but anyway
さらに、モデルごとに 1 つずつ、クエリを実行する 4 つのビューがあります。それらはすべてこのようなものなので、投稿することは重要ではないと思います。
これらのクエリは、私の javascript ファイル (私は angularjs を使用しています) で次のように作成されます。
this.doSearch = function(query) {
if (query.length > 2) {
this.searchengine.projects = $resource('/api/projects').get({query: query});
this.searchengine.tasks = $resource('/api/tasks').get({query: query});
this.searchengine.comments = $resource('/api/comments').get({query: query});
}
}