私はTastypieを持つDjangoアプリを持っています。主にBackBoneクライアント側です。私のモデルの1つにいくつかのImageFieldがあります。問題の説明に役立つ同様の設定です。Django TastypieはファイルURIにFileFieldを保存するのを防ぎます
settings.py
MEDIA_URL = "/media/"
models.py
class Foo(models.model):
bar = models.ImageField()
baz = models.CharField()
api.py
class FooResource(ModelResource):
class Meta:
queryset=models.Foo.objects.all()
resource_name = "foo"
authorization = Authorization()
私はにGET要求を行いますAPIを使用すると、バーにアクセスできるURIを返すためにMEDIA_URLがファイル名に追加されます。しかし、行のbazの値を変更してからPUTリクエストを行うと、バーの値もURIに変更されます。つまり、次回にGET行を追加すると、MEDIA_URLが再び追加され、システムが切断され、連続するGETおよびPUTごとに追加されます。私はDBのように見える値のバーで終わる。
私はPUT要求があった場合、それはURIまたは実際のファイルのいずれかを取得していますことを認識し、何らかの方法でその動作を変更するように私は、私のModelResourceでメソッドをオーバーライドすることで、この問題を解決すべきだと思う/media/media/media/bar.jpg
。
これは正しい修正ですか?修正の実装の詳細をいくつか教えてください。