我有这个型号:def generate_filename(self, filename):
url = "files/users/%s/%s" % (self.user.id, filename)
return url
class Upload(models.Model):
user = modelo.ForeignKey(User, null=True)
docfile = modelo.FileField(upload_to=generate_filename)
在视图.py在
^{pr2}$
我有一个django上传文件的列表:
{% for item in allfiles %}
{{ item.docfile.name }}{% endfor %}
它在html上显示我文件的完整路径:files/users/1/test.txt
我只想显示test.txt
我试过这样:
{% for item in arquivos %}
{{ item.docfile.name.split('/')[3] }}{% endfor %}
但我得到了Could not parse the remainder: '('/')' from 'item.docfile.name.split('/')[3]'
编辑
我试图在myapp/templatetags/filename.py中创建一个文件:import os
from django import template
register = template.Library()
@register.filter
def filename(value):
return os.path.basename(value.docfile.name)
在模板中:{% load filename %}
{% for item in allfiles %}
{{ item.docfile|filename }}{% endfor %}
现在我得到的是:'filename' is not a registered tag library. Must be one of:
admin_list
admin_modify
admin_static
admin_urls
cache
filaname
future
i18n
l10n
log
static
staticfiles
tz