Django-检查上传文件的文件类型,然后更改模板

时间:2012-08-25 06:02:45

标签: python django

我想编写一个函数来检查上传文件的扩展名,并根据该函数为变量赋值 我希望这是有道理的。我基本上想检查上传文件的文件类型,然后相应地更改模板 我正在考虑实现的代码是这样的,但我有点困惑

models.py

class ScribbleMedia(models.Model):
         media = models.FileField(upload_to=get_file_path)
         typecheck=find_typecheck
         def __unicode__(self):
          return self.media

但我不知道在哪里写这个函数

def find_typecheck(instance, filename):
        label=filename
        ext = filename.split('.')[-1]
        if ext == 'jpeg':
            a=1
        else:
            a=2
        return a
html模板中的

我应该能够做到这一点

{% if ScribbleMedia.typecheck ==1 %}
    do something
{% else %}
    do something else
{% endif %}

1 个答案:

答案 0 :(得分:1)

您可以将该方法放在模型类中,并在模板中使用该方法来获取文件类型。您可以使用ScribbleMedia

的实例调用此方法

e.g。

class ScribbleMedia(models.Model):
     media = models.FileField(upload_to=get_file_path)

     def __unicode__(self):
        return self.media
     def find_typecheck(self):
        filename = self.media.name
        try:
           ext = filename.split('.')[-1]
           if ext == 'jpeg':
              a=1
           else:
              a=2
        except Exception:
           a=-1 #couldn't determine
        return a

在模板中:

{% if sc_media_obj.find_typecheck ==1 %}
    do something
{% else %}
    do something else
{% endif %}

旁注:仅检查文件扩展名可能不够。