在我的模型中,我有一个已定义的FileField
我的模板将其显示为链接。我的问题是链接文件显示url作为名称。在html页面上显示的是:
上传文件:./ picture = .jpg
我查看了DjangoDocs关于文件名和以前的S.O. question,但是无法理解。
我怎么能:
my models.py:
class model_name(models.Model):
attachment = models.FileField()
我的views.py(如果条目存在,则显示它,如果没有,则返回消息):
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,
})
my page.html:
<p>Uploaded File: <a href="{{ variable.attachment.url }}">{{ variable.attachment }}</a></p>
答案 0 :(得分:2)
代码:
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
答案 1 :(得分:1)
在page.html中:
<p>Uploaded File: <a href="{{ model.Attachment.url }}">{{ model.Attachment }}</a></p>
应更改为:
<p>Uploaded File: {{ variable }}</p>
答案 2 :(得分:0)
要解决这个问题,我只需在models.py
添加一个附加字段。这允许用户给它起一个名字。当在页面上显示它时,请调用Attachment和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>