2017-04-13 104 views
0

我知道這個問題已被問了很多次,但我無法找到一個很好的解決方案。這裏是我的模型:如何從文件字段獲取文件的名稱?

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,我上傳的名稱一首新歌:Song.mp3的。在管理面板中,顯示如下:

Currently: ./song.mp3 

我需要命名爲song.mp3,我該怎麼做?我試圖在Python Shell中這樣做:

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

,但它只能說明這一點: ''

+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

請將回答標爲正確,歡迎;) –