0

アップロードされたファイルの拡張子をチェックし、それに応じて変数に値を割り当てる関数を書きたいと思います。
それが理にかなっていることを願っています。基本的に、アップロードされたファイルのファイルタイプを確認し、それに応じてテンプレートを変更したいと考えています。
私が実装しようと考えているコードはこのようなものですが、ちょっと混乱しています

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 %}
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 に答える