ProductImage
というモデルには、いくつかのフィールドとDjango ImageField
というモデルがあります。この場合、私はすでにオブジェクトを作成していますが、オブジェクトのfeatured
ブール値を更新したいとします。イメージフィールドでオブジェクトを更新する方法 - Django Rest Framework
問題は、私は(AngularJSを使用)$http.put()
を行うときに、私は、エラーが返さ言ってもらうことです。
を提出したデータファイルではありませんでした。フォームのエンコーディングタイプを確認してください。
私のRESTのAPIオブジェクトは、GETリクエストに次のようになります。
{
"id": 15,
"image": "http://127.0.0.1:8000/media/products/photo_1_5.JPG",
"alt": "HelloWorld",
"featured": false,
"product": 1
}
私はこのようなルックスを送信するHTTP PUTリクエスト:(お知らせfeatured
がtrue
に変更されました)
{
"id": 15,
"image": "http://127.0.0.1:8000/media/products/photo_1_5.JPG",
"alt": "HelloWorld",
"featured": true,
"product": 1
}
だから...イメージファイルを再提出/再アップロードせずにオブジェクトを更新するにはどうすればいいですか?
私は 'PATCH'を行うと、辞書のうち' image'を除外すると、それは '画像= NONE'として扱い、それがnull'なので'古い 'image'値を上書きします。私は行方不明の設定ですか? –
シリアライザまたはビューの 'update'メソッドをオーバーライドしましたか? – ilse2005
ああ、そうです。それがそれを解決しました。 –