問題タブ [django-rest-framework]

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 投票する
4 に答える
25044 参照

apache - django rest_framework に認証ヘッダーがありません。Apache のせいですか?

TokenAuthenticationトークンを保存するためにリクエスト セッションを使用するとき、なんとか拡張でき、動作モデルがありますが、ここで説明されているようAuthorizationにヘッダー パラメータとして渡そうとすると、応答が META 変数 HTTP_AUTHORIZATION なしで返されることに気付きました。また、「Authorization2」をヘッダー パラメーターとして渡すと、それがリクエストに表示されることにも気付きました。

私の最初の推測では、承認ヘッダーが apache によって削除されているということです。基本的な承認と認証に一致しない場合、apache が値を破棄するという S/O の質問をいくつか読みましたが、その方法がわかりません。 Authorization ヘッダーが Django と WSGIRequest に「パススルー」できるようにします。この問題を解決する方法を知っている人はいますか?

何か変更があれば、mod_auth_cas と mod_proxy も使用します。

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

python - django-rest-frameworkを使用してシリアライザーレベルでモデルを拡張する方法

私のモデルは次のようになります。

私がやりたいのは、isReplaceableフィールドを含む特定のMenuItem内のコンポーネント(MenuItemComponentsではない)のリストを公開することです。これまでのところ:

これにより、MenuItemComponentsのリストが公開され、すべてのコンポーネントを取得するためにクライアントが複数の呼び出しを行うように強制されます。isReplaceableフィールドからの追加データでコンポーネントリストを公開すると、問題が解決します。

編集
最後に、コンポーネント要素をリストするリストを取得したいのですが、要素はMenuItemComponentモデルのisReplaceableフィールドで拡張されています。

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

django - Djangorestframework Modelresource add a field from an foreignkey

I have an api in django-rest framework that now returns this json data:

But I want it to return something like this (flatten the foreigneky to its ID only):

Doing this in the model Resource, now I Have (simplified):

I tried already something like:

but that did not work

for the complete story, this how the view returns the data, list is a result of a query over the SomeModel:

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

python - 保存前にdjango-rest-frameworkシリアライザーオブジェクトを編集する

django-rest-framworkシリアライザ オブジェクトを保存する前に編集したい。これが私が現在行っている方法です-

django-rest-frameworkシリアライザーオブジェクトでどうすればできますか?

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

django - Django RESTフレームワーク:非モデルシリアライザー

私はDjangoRESTフレームワークの初心者であり、アドバイスが必要です。私はWebサービスを開発しています。このサービスは、他のサービスへのRESTインターフェースを提供する必要があります。実装する必要のあるRESTインターフェースは、モデルを直接操作していません(つまり、get、put、post、delete操作を意味します)。代わりに、他のサービスにいくつかの計算結果を提供します。リクエストに応じて、私のサービスはいくつかの計算を行い、結果を返します(結果を独自のデータベースに保存しません)。

以下は、そのRESTインターフェースを実装する方法についての私の理解です。私が間違っているなら、私を訂正してください。

  1. 計算を行うクラスを作成します。「CalcClass」という名前を付けます。CalcClassは、その作業でモデルを使用します。
    • 計算に必要なパラメーターはコンストラクターに渡されます。
    • 計算操作を実装します。結果を「ResultClass」として返します。
  2. ResultClassを作成します。
    • オブジェクトから派生。
    • 計算結果を含む属性のみがあります。
    • 計算結果の一部は、タプルのタプルとして表されます。私が理解しているように、これらの結果に対して別のクラスを実装し、そのようなオブジェクトのリストをResultClassに追加することで、さらにシリアル化する方がよいでしょう。
  3. ResultClassのシリアライザーを作成します。
    • serializers.Serializerから派生します。
    • 計算結果は読み取り専用であるため、IntegerFieldなどの特殊なクラスではなく、ほとんどの場合、フィールドにFieldクラスを使用します。
    • 結果を保存するつもりはないので、ResultClassにもSerializerにもsave()メソッドを実装しないでください(要求に応じてそれらを返したいだけです)。
    • ネストされた結果のImplシリアライザー(上記のタプルのタプルを思い出してください)。
  4. ビューを作成して計算結果を返します。
    • APIViewから派生します。
    • get()が必要です。
    • get()で、リクエストから取得したパラメータを使用してCalcClassを作成し、そのcalc()を呼び出し、ResultClassを取得し、Serializerを作成して、それにResultClassを渡し、Response(serializer.data)を返します。
  5. URL
    • 私の場合、APIルートはありません。さまざまな計算結果(diffパラメータを使用した計算)を取得するためのURLが必要です。
    • APIブラウジング用の呼び出しformat_suffix_patternsを追加します。

私は何か見落としてますか?アプローチは一般的に正しいですか?

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

django - API 経由の Django ファイルのアップロード

私は django を初めて使用し、FileFields を含むいくつかの基本的なモデルを設計しています。

これが私のモデルの例です:

管理者経由でファイルのアップロードをテストしましたが、REST API 経由でファイルを送信するための他のソリューションを探しています。私の最初の検索はピストンにつながりますが、ほとんどの例にはモデルが含まれていないようで、Web サイトへのファイルのアップロードのみです。

私の目的は、たとえば os.walk を使用してディレクトリを解析し、ファイルを送信してモデルにファイル情報を入力することです。

とはいえ、調査を開始するために提案と手がかりを探しています。

前もって感謝します!

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

django - 0.x から 2.1.9 に移行する Django レスト フレームワーク

django-rest-framwork 0.3.2 から最新の 2.1.9 に変換する際の問題のいくつかを解決した後、これを修正する方法がわかりません (これは Reinout のブログに同意します..... ..)

私はこのコードを持っていました:

今、私はチュートリアルに従って、これを別の方法で行う方法を見てきました (おそらくもっときれいです)。URLでスラッグを使用する。

ただし....クライアント側ソフトウェアの下位互換性を維持したいので、URLにクエリの値を入れずにこれを持ちたいです。クライアント側は、投稿のヘッダーで json データと ContentType json を使用します。

django Rest Framework の最初のバージョンでは、このクエリの値を入力するための見栄えの良い閲覧可能なフォームさえ取得しました。

私の質問: 最新バージョンでこれを行うにはどうすればよいですか?

ビューでフォームを取得できないようです....値を入力してプロセスで使用できる場所

ソファまで試したことを投稿するのは良いかもしれません...

まず、シリアライザーで ModelResource を変更しました。

ビューが次のように変更されました。

注:受け入れられた回答(Tom Christieによる)に基づいて、どのように機能したかを示す回答を追加しました(詳細)。

0 投票する
4 に答える
26848 参照

django - django restフレームワークは、ネストされたオブジェクト「モデル」をPOSTで作成します

新しいネストされたオブジェクトを POST しようとしていますが、問題は「トップ」オブジェクト (プレイリスト) を作成するだけで、「ChannelItem」を作成しないことです...

私のモデル:

私のシリアライザ:

curl を使用して、次のデータを投稿します。

次のメッセージが表示されます。

0 投票する
4 に答える
6940 参照

python - 親クラスの docstring を __doc__ 属性として継承する

Python class inheritance に Inherit docstringsに関する質問がありますが、そこでの回答はメソッドの docstring を扱っています。

私の質問は、親クラスの docstring を__doc__属性として継承する方法です。ユースケースは、Django レスト フレームワークが、ビュー クラスのドキュメント文字列に基づいて API の HTML バージョンで適切なドキュメントを生成することです。しかし、docstring を持たないクラスで基本クラス (docstring を持つ) を継承する場合、API は docstring を表示しません。

スフィンクスやその他のツールが正しいことを行い、docstring の継承を処理してくれる可能性は非常に高いですが、django レスト フレームワークは (空の).__doc__属性を調べます。

のようなことを試しましsuper(SubClassWithoutDocstring, self).__doc__たが、それもNone.

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

django - Django-rest-framework json ダンプ

django-rest-framework を使用して単純な JSON API を作成しました。コレクションを JSON ファイルとして含む 1 つの zip ファイルとして 5 つのコレクションをダウンロードできるようにしたいと考えています。(私のアプリには、このデータのオフライン ダンプが必要です)。

/download/たとえば、すべてのMyModelList.as_view()s からの出力を zip にまとめて提供するビューを作成することを考えています。

これを行う最善の方法は何ですか?urllib/Requests を使用して API を直接クエリすることもできますが、http スタック全体を呼び出すには長い道のりのようです...

どうもありがとう!