Как получить имя загруженного файла из идентификатора django
Мне просто нужно точное имя файла, который я загрузил, чтобы я мог прочитать весь файл и показать содержимое на HTML-странице...
class newcodes(models.Model):
user_id = models.AutoField
fullname = models.CharField(max_length=200)
codefile = models.FileField(upload_to ='programs/')//her is my codefile location in models
Вот моя функция для чтения текста, но я не могу получить имя загруженного файла, поэтому я не могу прочитать файл
def showcode(request,id):
programs=newcodes.objects.filter(id=id)
print(programs)
# f=open('media/')
return render(request,"Codes.html")
programs=newcodes.objects.filter(id=id)
Возвращает QuerySet
. Вам необходимо get
вместо filter
:
program=newcodes.objects.get(id=id)
В результате будет создан объект newcodes. Из него вы можете получить загруженный файл в виде :
program.codefile.name
Если имя файла находится вместе с каталогом, просто разделите имя файла следующим образом:
import os
os.path.split(program.codefile.name)[-1]
Вы также можете использовать здесь
fileurl=str(info.codefile.url) //This will convert into string
codefile - это файл в модалах, который вы загрузили в вашу форму или на страницу администратора django, а info - это модал