問題タブ [django-rest-viewsets]
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.
python - django rest フレームワークでのモデルの複数のタイプの更新操作
以下は私のモデルです
以下は、このグループ モデルで可能なさまざまなタイプの操作です。
- グループを作成
- グループの更新
- グループの詳細を更新します。
- グループ メンバーの追加/削除
- 部外者に招待を送る
- 管理者にする/管理者を削除します。
- グループを削除
作成/削除操作については明らかですが、更新できるものが複数あるため、更新操作については混乱しています。現在、上記のすべてのアクティビティを実行する Group クラスにヘルパー メソッドを追加しました。
私の質問は、DRF(Django Rest Framework) ModelViewSets とどのように統合できますか。update() メソッドは 1 つしかないため、上記の更新シナリオの 1 つだけを処理できます。他の更新シナリオをどのように処理できますか?(考えられる解決策の1つは、リクエストで操作タイプフラグを使用し、 update() メソッドでそれをチェックして、どのモデルメソッドを呼び出すかを決定することだと思いますが、それは少し単純な解決策です。 Django Rest Framework でこれを行う方法は?)
前もって感謝します。
python - 2つの値を持つ属性のDjangoフィルター、1つの結果を優先
変な質問ですので、よろしくお願いします。Django Rest に次のようなモデルがあります。
そして、指定された {request_barId, request_buzzId, lastUpdateDate} を持つすべての Foo のリストを返す必要がある ViewSet があります。これはかなり単純明快で、
これがこすりです。指定された budId がオーバーレイする必要がある基本リストである、buzzId のデフォルト値があり、基本リストのインスタンスを置き換えます。ちょっと迷ってるところです。私には解決策がありますが、特にエレガントではなく、このクリーナーを実行する方法があるように感じます。オーバーレイを行うための私のコードは次のとおりです。
そして、これは本当にぎくしゃくしているようです。これをきれいにする方法はありますか?
編集: 明確にするために、タプル { 1, 0, '01-01-1970' } のリストが基本セット (buzzId: 0) を表し、fizzIds { 1, 2, 3 を含むオブジェクトのリストを返すとしましょう、10}。タプル { 1, 1, '01-01-1970' } が、文字列の完全なセットに対する、buzzId のリクエストを表しているとしましょう。1 の bugId (augment と呼びます) に一致する Foos と fizzIds { 2, 10, 15, 20 } があるとすれば、結果セットは次のようになります。
これですっきりしますか?
django-rest-framework - ルーターの「detail_route」に検索フィールドは必要ですか?
ここを見てください:http://www.django-rest-framework.org/api-guide/routers/#extra-link-and-actions例には次のものがありますpk=None
:
そして、次の URL パターンが生成されると述べています。^users/{pk}/set_password/$
こちら: http://www.django-rest-framework.org/api-guide/routers/#simplerouterまた、lookup
フィールドが URL に含まれていることも示しています。{prefix}/{lookup}/{methodname}/
DRFはメソッドにlookup
値を渡しますか? detail_route
ドキュメントに基づいて、そうであるように見えますが、ここにあります: http://www.django-rest-framework.org/api-guide/routers/#example
下にスクロールすると、次のようになります。
関数の引数としてルックアップ値は要求されませんgroup_names
。私の質問は次のとおりです。
1) pk
/ にはルックアップ フィールド引数が必要detail_route
ですか?
2) そうでない場合、self.get_object()
取得するオブジェクトをどのように知ることができますか?
3) また、そうでない場合は@list_route
、ルックアップが使用されていないため、代わりに使用しないでください。
編集: こちら: http://www.django-rest-framework.org/api-guide/viewsets/#marking-extra-actions-for-routingThe @detail_route decorator contains pk in its URL pattern and is intended for methods which require a single instance.