web-dev-qa-db-ja.com

DjangoでモデルインスタンスのFileFieldの絶対ファイルパスを取得する

サーバーにファイルをアップロードできるページがあります。

Celeryのファイルで何かをしたい。そのため、モデルのアップロードされたFileFiledの絶対ファイルパスを知る必要があります。

モデルに問い合わせてインスタンスを取得したとしましょう。次に、ファイルパスを含む絶対ファイルパスを取得する必要があります。

obj = Audio.objects.get(pk=1)

現在obj.filenameを試していますが、絶対パスではなくファイル名のみを印刷しています。

入力したアップロードパスをupload_toとメディアディレクトリに取得できることは知っていますが、もっとDRYと自動アプローチがあるかどうか疑問に思っていました。

fileにファイルされているobjabsolute pathを取得するにはどうすればよいですか?

6
Kotlinboy

答えを見つけました。

私は.path上のFileField

私が行った場合

obj.audio_file.path 

objは、問い合わせたモデルインスタンスであり、audio_fileはファイルフィールドです

21
Kotlinboy