問題タブ [tastypie]
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.
django - Django Tasty Pie:PUTおよびPOSTメソッドでのシリアル化
DjangoとTastyPieでRESTfulアプリを構築しています。PUTメソッドとPOSTメソッドに問題があります。Curlを介してリクエストを実行すると、エラーが発生します。
カールリクエスト:
エラー:
シリアライザーは私のリソースクラスに実装されています:
django - Django-TastypieでPOSTを使用するForeignKeyの問題
django-tastypieを使用して単純なAPIを構築しています。アイデアは私が2つのリソースを持っているということです:
- ユーザーが残したメモを表すメモリソース。メモを作成したユーザーのみが編集できます。
- コメントリソース。コメントは、どのユーザーでもどのメモにも残すことができます。
TL; DR:ノートの編集をノートの作成者に制限することはできませんが、ユーザーはノートにコメントすることができます。
認証に次の設定を使用しています。
つまり、ユーザーは、created_byプロパティと等しいオブジェクトの編集のみを許可されます(ユーザーは、作成したオブジェクトのみを編集できます)。
これは次のようにリンクされています。
したがって、ここでは、オブジェクトが作成されるときに、現在のユーザーをcreated_by
属性に自動的にアタッチし、適切な承認にリンクします。
Comment
リソースは単純でForeignKey
、リソースにのみありNote
ます。
問題はこれです。 ユーザーAがメモを作成し、ユーザーBがそのメモにコメントしようとすると、tastypieはそのメモを編集するためのPOSTリクエストを送信(またはシミュレート)します。ユーザーBがメモを作成しなかったため、その試行は拒否され、コメントの作成は失敗します。
質問はこれです:次のいずれかを行う方法はありますか?
- tastypieがPOSTを使用してNoteリソースとの逆の関係を作成するのを防ぎます。
- ノートは作成者のみが編集できるように承認スキームを変更しますが、コメントは一般的に作成できますか?
洞察を事前に感謝します。
編集:
私はこれを達成できる大きなファットハックを持っています。私はそれが安全であるとかなり確信していますが、私は前向きではありません。確認するために、いくつかのクエリを作成してみます。に関連するためにfields.ForeignKey
inを使用する代わりに、カスタムフィールドを作成します。Comment
Note
この関連リソースを構築しようとするたびに、リクエストをaとしてマークします(またはに一致するものではなくGET
、クエリに一致することが期待されるため)。これは本当に醜く、間違って使用すると安全ではない可能性があります。より良い解決策を期待しています。SELECT
UPDATE
PUT
POST
編集2:おいしいソースを読んでから、私が知る限り、実際に送信されるクエリによって承認をフィルタリングする方法はありません。
django - Django-tastypie。ブラウザでより人間が読めるJSON
ブラウザでより人間が読めるJSONを取得できますか?よりフォーマットされた美しい出力...
ありがとう、Vitaliy
django - Django-tastypie。デフォルトでJSONでブラウザに出力
「申し訳ありませんが、まだ実装されていません。URL に「?format=json」を追加してください。常に文字列「?format=json」を追加する必要があります。デフォルトで JSON で出力できますか?
よろしく、 Vitaliy
django - Django-tastypie。ネストされたリソース、URL
ネストされた URL を使用できますか
例: /api/v1/stores/21/categories/3/products/4132/
ありがとう、ヴィタリー
django - TastyPie 登録の問題
JSON を使用してデータを公開するために、Django TastyPie を使い始めました。のtastypie.Apiを使用してリソースを結び付けようとしていますurls.py
http://django-tastypie.readthedocs.org/en/latest/tutorial.html#creating-resourcesにある例 はそのままでは機能しません。
私のurls.py
エントリ:
そしてapi.py
:
とmodels.py
:
そして最後に試してみると、エラー:
結果:
しかし、私が単に使用する場合、この問題はありませんurls.py
:
で物事を結び付けようとすると、ここで何が問題になるのでしょうapi.register(...)
か?
javascript - require.jsでAMD互換ではないjavascriptモジュールを使用していますか?
私はrequire.jsを使用して、Backbone.jsベースのアプリケーションを整理しています。
私はrequire.jsとAMD互換ではないサードパーティのjavascriptライブラリを使用する正しい方法を見つけようとしています
問題のライブラリはbackbone-tastypie.jsです。基本的に、ライブラリが行うことは、TastyPie Django RESTフレームワークのより簡単なサポートを提供するために、Backboneのプロトタイプメソッドのいくつかにモンキーパッチを適用することです。これは、グローバル名前空間のBackboneオブジェクトを直接操作することによって行われます。
ただし、require.jsモジュールとしてBackbone.jsを使用しているため、このライブラリがBackbone.jsにアクセスしようとすると使用できなくなります。
このbackbone-tastypieをBackboneのスコープにインポートするにはどうすればよいですか?
javascript - 一度に 1 人のユーザーだけが REST+HTTP でオブジェクトを変更できるようにする適切な方法はありますか?
複数の人がデータベース内の行の属性をまったく同時に変更したり、古いデータを PUT したりする可能性のある Django/Tastypie アプリケーションを作成しました。
例えば:
ここで、任意の数のユーザーが任意の時点でname
またはdescription
を変更できるとします。Thing
彼らは同時にそれを行うことも、誰かがアプリケーションを長時間開いたままにして戻ってきて変更することもできます.
私が避けようとしているのは、不正確な潜在的な変更です。次の状況を考えます。
行 の後#4
、モノ #1 の状態はname = "some other name", description = "something"
ではなく になりname = "some other name", description = "my description"
ます。
サーバー上のオブジェクトが変更されたことをアプリケーションが (リアルタイムで、またはページ上のデータを定期的に更新することによって) 事前に認識していないと仮定すると、この状況をどのように防ぐことができるでしょうか?
更新が行われるたびにインクリメントするフィールドsequence = models.PositiveIntegerField()
を追加することを検討したので、更新が行われたときにオブジェクトが古くなっているかどうかがわかりますが、それが最善の方法ですか? より良い方法はありますか?これはよくあるパターンになりそうですよね?
django - Tastypie-django カスタム エラー処理
エラー コードを含むヘッダーを返すだけでなく、JSON 応答を返したいと考えています。そのようなエラーを処理する方法はありますか?
django - Tastypie は ID 以外の主キーで投稿できません
私はdjango-tastypieを使ってdjangoモデルを公開しています。ただし、このリソースへの投稿に問題があります。Tastypie は、「id」フィールド以外に別のフィールドを主キーに使用していることを気に入らないようです。
これが私が見ているエラーです:
私のモデル:
私のリソース: