반응형
Django FileField : 파일 이름 만 반환하는 방법 (템플릿에서)
내 모델 유형에 필드가 FileField
있습니다. 이것은 File
다음과 같은 방법을 가진 유형의 객체를 제공합니다 .
File.name
:의 상대 경로를 포함하는 파일의 이름입니다MEDIA_ROOT
.
내가 원하는 것은 " .filename
" 와 같은 것인데 파일 이름 만 제공하고 경로는 제공하지 않습니다.
{% for download in downloads %}
<div class="download">
<div class="title">{{download.file.filename}}</div>
</div>
{% endfor %}
다음과 같은 것을 줄 것입니다. myfile.jpg
모델 정의에서 :
import os
class File(models.Model):
file = models.FileField()
...
def filename(self):
return os.path.basename(self.file.name)
템플릿 필터를 생성하여이를 수행 할 수 있습니다.
에서 myapp/templatetags/filename.py
:
import os
from django import template
register = template.Library()
@register.filter
def filename(value):
return os.path.basename(value.file.name)
그런 다음 템플릿에서 :
{% load filename %}
{# ... #}
{% for download in downloads %}
<div class="download">
<div class="title">{{download.file|filename}}</div>
</div>
{% endfor %}
name 속성을 사용하여 파일 필드 개체에서 파일 이름에 액세스 할 수 있습니다.
class CsvJob(Models.model):
file = models.FileField()
그런 다음 사용하여 특정 개체 파일 이름을 얻을 수 있습니다.
obj = CsvJob.objects.get()
obj.file.name property
참조 URL : https://stackoverflow.com/questions/2683621/django-filefield-how-to-return-filename-only-in-template
반응형
'program story' 카테고리의 다른 글
Go에서 배열을 슬라이스로 변환 (0) | 2021.01.06 |
---|---|
Chart.js — 임의의 수직선 그리기 (0) | 2021.01.06 |
SQL Union에서 중복 제거 (0) | 2021.01.05 |
iOS 자산 번들을 만드는 방법은 무엇입니까? (0) | 2021.01.05 |
보기를 뒤로 보내는 방법은 무엇입니까? (0) | 2021.01.05 |