我知道很多次都会问这个问题,但我无法找到一个很好的解决方案。这是我的模特:
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
我已经完成了所有这些,但我仍然无法获取文件名。所以在管理页面中,我上传了一首名为song.mp3的新歌。在管理面板中,它显示如下:
Currently: ./song.mp3
我需要获得名称song.mp3,我该怎么办?我尝试在python shell中执行此操作:
d = Song.object.get(pk=1)
d.audio_file.name
但它只显示了这个:''
答案 0 :(得分:1)
我认为你应该使用下一步:
@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的更多信息,它将在未来为您提供帮助;)