2017-04-13 118 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

请将回答标为正确,欢迎;) –