質問で与えられた詳細から、他の誰かがあなたのためにこれをデバッグできるようになる方法はありません。
- 既存の汎用ビューを再利用していますか、それとも独自のビューを作成していますか?
- データをシリアル化していますか?そうであれば、シリアライザーの定義はどのようになりますか?
- JSONにレンダリングするとき、またはBrowsable APIにレンダリングするときに、問題が発生しますか?
- RESTフレームワークなしでコンテンツを提供することについておっしゃっていますが、ビューは以前はどのように見え、その後はどのように見えますか?
RESTフレームワークのビューは簡単なので、プロファイリングツールを使用するか、単にそれらをオーバーライドしてタイミングを追加します。同様に、レンダラーは簡単です。現在使用しているレンダラーをサブクラス化し、親のメソッド.render()
の呼び出しのいずれかの側でいくつかのタイミング呼び出しをオーバーライドして追加します。.render()
問題を特定の領域に絞り込んだと思われる場合は、最小限のテストケースをまとめて、問題として提出してください。
シリアル化自体が問題になる可能性は低いです。同じシリアル化エンジンを使用してDjangoのフィクスチャダンプを複製しましたが、大きな劣化はありませんでした。
モデルの関係全体でルックアップを行う場合は、他のDjangoビューの場合とまったく同じように、クエリセットを作成するときに追加.select_related()
または呼び出す必要がある場合があります。.prefetch_related()
編集:この投稿に続いて、このチケットに記載されているように、シリアライザーの速度が大幅に向上したことに注意してください。