2017-04-13 12 views
0

私はこの質問が何度も尋ねられてきたことを知っていますが、私はこれに対する素晴らしい解決策を見つけることができません。ここに私のモデルである:song.mp3:ファイルフィールドからファイルの名前を取得する方法は?

class Song(models.Model): 
    song_title = models.CharField(max_length=200, null=False, blank=False) 
    audio_file = models.FileField(default='', null=True,blank=True) 
    @property 
    def filename(self): 
     return os.path.basename(self.audio_file.name) 
    def __str__(self): 
     return self.song_title 

私はこのすべてを行っているが、私はまだ管理画面でファイルname.Soを取得することはできませんよ、私は名前で新しい曲をアップロードしました。管理パネルでは、次のように表示されます。

Currently: ./song.mp3 

私はsong.mp3という名前を取得する必要があります。どうすればいいですか?

d = Song.object.get(pk=1) 
d.audio_file.name 

が、それはこれだけを示しています:私は、Pythonシェルでこれをやってみました '私はあなたが次のものを使うべきだと思う

+0

ファイルへの絶対パスを取得したいですか? –

+0

ええ、パスだけでなく、ファイル名です。 – blacklight

答えて

0

を':

@property 
def filename(self): 
    return self.audio_file.path # os.path.basename(self.audio_file.path) 

self.audio_file.path代わりのself.audio_file.name

とファイルの管理の詳細については、Django managing filesこれは将来あなたを助けるでしょう;)

+0

ありがとう!それはうまく動作します! – blacklight

+0

答えを正しいとマークしてください、ようこそ;) –

関連する問題