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