Django:显示上传文件的文件名
Django: Display File Name for Uploaded File
在我的模型中,我定义了一个 FileField
,我的模板将其显示为 link。我的问题是 linked 文件显示 url 作为名称。 html 页面上显示的是:
上传文件:./picture.jpg
我看过 DjangoDocs regarding file names and a previous S.O. ,但就是想不通。
我怎样才能:
- 让它显示不同的名称,而不是 url。
- 允许上传文件的管理员为其命名,然后可以在模板上查看。
我的models.py:
class model_name(models.Model):
attachment = models.FileField()
我的views.py(如果条目存在,显示它,如果不存在,return消息):
from django.core.files import File
from vendor_db.models import model_name
def webpage(request, id):
try:
variable = model_name.objects.get(id=id)
except model_name.DoesNotExist:
raise Http404('This item does not exist')
return render(request, 'page.html', {
'variable': variable,
})
我的page.html:
<p>Uploaded File: <a href="{{ variable.attachment.url }}">{{ variable.attachment }}</a></p>
在page.html中:
<p>Uploaded File: <a href="{{ model.Attachment.url }}">{{ model.Attachment }}</a></p>
应改为:
<p>Uploaded File: {{ variable }}</p>
对于您的代码:
class model_name(models.Model):
attachment = models.FileField()
attachment
是一个 FileField
对象,它有一个名为 filename
的 属性,所以只需要那个 属性。即
foo = model_name.objects.create(attachment=some_file)
foo.attachment.filename # filename as a string is returned
为了解决,我只是在models.py
中添加了一个额外的字段。这允许用户给它起一个名字。并在页面上显示时,调用附件和 Attachment_Name 如下所示。希望这可以帮助。没有 URL 混乱。
class model_name(models.Model):
Attachment = models.FileField()
Attachment_Name = models.CharField()
在我的 html 文件中:
<p>Uploaded File: <a href="{{ variable.Attachment.url }}">{{variable.Attachment_Name }}</a></p>
在我的模型中,我定义了一个 FileField
,我的模板将其显示为 link。我的问题是 linked 文件显示 url 作为名称。 html 页面上显示的是:
上传文件:./picture.jpg
我看过 DjangoDocs regarding file names and a previous S.O.
我怎样才能:
- 让它显示不同的名称,而不是 url。
- 允许上传文件的管理员为其命名,然后可以在模板上查看。
我的models.py:
class model_name(models.Model):
attachment = models.FileField()
我的views.py(如果条目存在,显示它,如果不存在,return消息):
from django.core.files import File
from vendor_db.models import model_name
def webpage(request, id):
try:
variable = model_name.objects.get(id=id)
except model_name.DoesNotExist:
raise Http404('This item does not exist')
return render(request, 'page.html', {
'variable': variable,
})
我的page.html:
<p>Uploaded File: <a href="{{ variable.attachment.url }}">{{ variable.attachment }}</a></p>
在page.html中:
<p>Uploaded File: <a href="{{ model.Attachment.url }}">{{ model.Attachment }}</a></p>
应改为:
<p>Uploaded File: {{ variable }}</p>
对于您的代码:
class model_name(models.Model):
attachment = models.FileField()
attachment
是一个 FileField
对象,它有一个名为 filename
的 属性,所以只需要那个 属性。即
foo = model_name.objects.create(attachment=some_file)
foo.attachment.filename # filename as a string is returned
为了解决,我只是在models.py
中添加了一个额外的字段。这允许用户给它起一个名字。并在页面上显示时,调用附件和 Attachment_Name 如下所示。希望这可以帮助。没有 URL 混乱。
class model_name(models.Model):
Attachment = models.FileField()
Attachment_Name = models.CharField()
在我的 html 文件中:
<p>Uploaded File: <a href="{{ variable.Attachment.url }}">{{variable.Attachment_Name }}</a></p>