2017-04-07 6 views
0

場合によっては、MEDIA_ROOTのオーバーライドに関する質問があります。私の場合は、XMLファイルをインポートしています。 100 MB以上。アップロードしたメディアファイルにもAWSを使用しています。解析するためのXMLファイルをアップロードすると、コンテンツがAWSにアップロードされ、再度ダウンロードする必要がありました。そこで、方法をオーバーライドし、AWSにアップロードしてローカルファイルストレージを使用しないようにします。私は私のモデルでは、以下のように記憶域パラメータを上書きすることに成功した:特定のケースでMEDIA_ROOTとMEDIA_URLを使用してスキップする方法

fs = FileSystemStorage(location=settings.STATIC_ROOT + '/XML_Uploads/') 

class ImporterFile(models.Model): 
    ... 
    ... 
    file = models.FileField(storage=fs) 
    .... 

私は、ファイルをアップロードするときには、オーバーライドされたパスを使用しています。しかし、問題は、私が管理インターフェースでそれをチェックすると、パスの場所が間違っていることです。それでも "/media/filename.xml"のようなパスが表示されます。しかしその場合は/static/filename.xmlにする必要があります

この問題を解決する方法を見つけることができませんでした。 ご協力いただければ幸いです。

+0

MEDIA_ROOTを設定ファイルにアクセスすることができてURLです&MEDIA_URLが異なっています MEDIA_ROOTはメディアファイルをそこに保存していることを意味しますが、MEDIA_URLはあなたがファイルにアクセスできるURLです –

答えて

1

MEDIA_ROOT & MEDIA_URLはMEDIA_ROOTはあなたがそこにメディアファイルを格納していることを意味、異なっている..しかし、MEDIA_URLあなたは

FileSystemStorageクラスを拡張し、base_url

class MyStorage(FileSystemStorage): 
     base_url = '/custom/url/' 

fs = MyStorage(location=settings.STATIC_ROOT + '/XML_Uploads/') 

class ImporterFile(models.Model): 
    file = models.FileField(storage=fs) 
+0

ありがとうございました。 –

関連する問題