0

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

模型.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 %}
4

1 回答 1

3

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

例如

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 %}

附带说明:仅检查文件扩展名可能还不够。

于 2012-08-25T06:13:22.593 回答