我想编写一个函数来检查上传文件的扩展名,并根据该函数为变量赋值 我希望这是有道理的。我基本上想检查上传文件的文件类型,然后相应地更改模板 我正在考虑实现的代码是这样的,但我有点困惑
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 %}
答案 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 %}
旁注:仅检查文件扩展名可能不够。