問題タブ [drf-queryset]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
2 に答える
190 参照

python - シリアライザー フィールド クエリセット定義でのシリアライザー コンテキストの使用

特定の SlugRelatedField のクエリセット宣言で使用される get_serializer_context を使用して、ModelViewSet で定義されたシリアライザー コンテキストを使用する方法を探しています。

すべてのシリアライザ メソッドで、これは self.context を使用してアクセスできますが、コンテキスト ディクショナリでこの情報を使用して、このフィールドのクエリセットをフィルタリングしたいと思います。

ここで、StorageLocation (project__code = context['project_code'])に適用されるクエリセットは、現在の問題がある場所です。

追加のコンテキスト: この問題は、rest_framework から次のエラーを解決しようとする試みです (StorageLocation クエリセットが .all() に設定されました)。

projects.models.procurement.StorageLocation.MultipleObjectsReturned: get() が複数の StorageLocation を返しました -- 2 が返されました!

0 投票する
2 に答える
369 参照

django - Django Rest FrameWork group by を使用してクエリの数を減らす

Django Rest Frameworks を使用して API を作成しています。API はクライアントのリストを取得します。クライアントには多くのプロジェクトがあります。私のAPIは、完了したプロジェクト、保留中のプロジェクト、および合計の数を含むクライアントのリストを返す必要があります。API は機能しますが、SQL クエリが多すぎます。APIはページ分割されています

今、私のクライアントシリアライザー

プロジェクトにはクライアントの外部キーがあります。annotate を使用して、以下のようなすべての製品を取得し、グループ化しようとしました。しかし、注釈は単一のフィールドでしか機能しませんでした。

複数のフィールドでグループ化し、その追加の引数をシリアライザーに渡す方法。または、より良いアプローチがあります。prefetch_related も試しましたが、 total_projects_count はまだ新しい SQL クエリを実行していました

0 投票する
1 に答える
129 参照

django - 拡張可能なフィルターを使用して Django クエリを作成するベスト プラクティスはありますか?

請求書を検索してリストに表示するために、ユーザーがさまざまなフィールドに入力できる (または入力できない) 「請求書検索ページ」があるとします。このフィールドのリストが、追加の db フィールドによって時間の経過とともに大きくなる可能性があるとします。私の現在の(作業中の)ソリューションは次のとおりですが、可能な追加フィールドを許可し、それに応じてクエリを適応させるより良い方法があるかどうか疑問に思っています。

query.py [カスタム クエリ コンポーザ]

views.py (Django レスト フレームワーク)

0 投票する
2 に答える
425 参照

django - DRF カスタム ページネーションが正しく機能しない

最近、私は drf ページネーション クラス、PageNumberPagination を使用していました。奇妙なバグに遭遇した可能性があります。公式ドキュメントでは、PageNumberPagination のページ サイズをオーバーライドするには、以下に示すように、ページ サイズの構成をオーバーライドするカスタム ページネータを作成する必要があります。

しかし、私が同じことをしようとしたとき、カスタムページネーターはデフォルト設定を 100 として使用していました。これが私が使用した私のスニペットです

ある瞬間、コードは正常に動作しましたが、ページサイズをしばらくいじった後、ページネーターが機能しなくなったので、ページサイズを機能させるために以下のようなことをしなければなりません

これは私の残りのフレームワーク設定です

私は何か間違ったことをしているかもしれないと思いますが、間違いを見つけることができません。

0 投票する
0 に答える
54 参照

database - drf のデータが heroku で削除されるのはなぜですか?

Heroku に Django Rest フレームワーク アプリがあります。管理パネルから作成したモデル オブジェクトとユーザーは、しばらくすると自動的に削除されます。データベースとして django の dbSqlite3 を使用しています。

データが Heroku に保存されないのはなぜですか?? データを Heroku に永続的に保存する方法はありますか?