如何获取文件名?

时间:2014-03-25 13:23:19

标签: python django

请帮助获取文件名。

我将图像上传到数据库。型号:

class AvtoPark(models.Model):
    title = models.CharField(max_length=100)
    date = models.DateField()
    image = models.FileField(upload_to='avtos/static/uploads/')

    @classmethod
    def get_all_entries(self):
        return self.objects.all()

字段“IMAGE”包含以下地址:

avtos/static/uploads/img1_b.png

模板我把它们带到如下:

{% for entrie in all_entries_avtopark %}
    {{ entrie.image.url }}
{% endfor %}

显示结果:

avtos/static/uploads/img1_b.png

我需要显示:

img1_b.png

2 个答案:

答案 0 :(得分:3)

在你的模型中添加:

import os
...

class AVTPark(models.Model):
    ...

    @property
    def image_name(self):
        return os.path.basename(self.image.name)

在你的模板中:

{% for entrie in all_entries_avtopark %}
    {{ entrie.image_name }}
{% endfor %}

答案 1 :(得分:0)

编辑: 您可以在models.py类中创建自己的方法。

class AvtoPark(models.Model):
    title = models.CharField(max_length=100)
    date = models.DateField()
    image = models.FileField(upload_to='avtos/static/uploads/')

    @classmethod
    def get_all_entries(self):
        return self.objects.all()

    def get_image_name(self):
        # here you can apply your logic what you want to display 
        # try to do same like below i am doing 
        return str(self.image.url).split('/')[-1]

在模板中,您可以直接调用:

{% for entrie in all_entries_avtopark %}
    {{ entrie.get_image_name( }}
{% endfor %}