1

私はすでにこの質問をしましたが、誰も答えませんでした。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});
    }
}
4

1 に答える 1