2017-04-13 7 views
0

이 질문은 많은 질문을 받았지만 이에 대한 좋은 해결책을 찾을 수는 없습니다. song.mp3 :filefield에서 파일 이름을 얻는 방법은 무엇입니까?

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 

하지만에만이 보여줍니다 ''

+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

답을 올바른 것으로 표시해주세요. 환영합니다;) –