Django:显示上载文件的文件名

Django:显示上载文件的文件名,django,django-models,django-templates,django-views,django-class-based-views,Django,Django Models,Django Templates,Django Views,Django Class Based Views,在我的模型中,我定义了一个文件字段,我的模板将其显示为链接。我的问题是链接文件将url显示为名称。html页面上显示的内容是: 上传文件:./picture.jpg 我已经查看了有关文件名和以前的S.O.的信息,但就是想不出来 我怎样才能: 让它显示不同的名称,而不是url 允许上传文件的管理员为其命名,然后在模板上查看 my models.py: class model_name(models.Model): attachment = models.FileField() my vi

在我的模型中,我定义了一个
文件字段
,我的模板将其显示为链接。我的问题是链接文件将url显示为名称。html页面上显示的内容是:

上传文件:./picture.jpg

我已经查看了有关文件名和以前的S.O.的信息,但就是想不出来

我怎样才能:

  • 让它显示不同的名称,而不是url
  • 允许上传文件的管理员为其命名,然后在模板上查看
  • my models.py:

    class model_name(models.Model):
        attachment = models.FileField()
    
    my views.py(如果条目存在,则显示它,如果不存在,则返回消息):

    my page.html:

    <p>Uploaded File: <a href="{{ variable.attachment.url }}">{{ variable.attachment }}</a></p>
    
    <p>Uploaded File: <a href="{{ model.Attachment.url }}">{{ model.Attachment }}</a></p>
    
    上传的文件:

    在page.html中:

    <p>Uploaded File: <a href="{{ variable.attachment.url }}">{{ variable.attachment }}</a></p>
    
    <p>Uploaded File: <a href="{{ model.Attachment.url }}">{{ model.Attachment }}</a></p>
    
    上传的文件:

    应改为:

    <p>Uploaded File: {{ variable }}</p>
    
    上传文件:{{variable}

    对于您的代码:

    class model_name(models.Model):
        attachment = models.FileField()
    
    attachment
    是一个
    FileField
    对象,它有一个名为
    filename
    的属性,所以只需请求该属性即可。i、 e

    foo = model_name.objects.create(attachment=some_file)
    foo.attachment.filename # filename as a string is returned
    

    为了解决这个问题,我只是在
    models.py
    中添加了一个额外的字段。这允许用户为其命名。在页面上显示时,调用附件和附件名称,如下所示。希望这有帮助。没有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>
    
    上传的文件:


    这有所帮助,但仍有一些问题。我知道我需要调用文件名attire,但我不应该在定义foo时调用它吗?还有,我把第二行代码放在哪里?在模板中?你是对的,我应该只显示变量,但是,我定义的变量是我现在遇到的当前问题。我希望我能投票,但我还没有足够的代表,哈哈