首页 > 解决方案 > 有没有办法拆分上传的文件扩展名并将其显示在不同的 html 元素中?

问题描述

我从 index.html 页面上传文件,扩展名是 .jpg、.pdf、Docx 和 mp4 到我的项目中,并且只能显示 jpg 文件并为此使用 scr,我需要根据扩展名和显示使用 if else 条件在 HTML 元素中。所以我需要拆分文件名并获取该扩展名并相应地使用 if-else 条件。我无法使用 split() 为 index.html 页面拆分文件。请帮助和下面包含的所有代码

索引.html

{% for i in phone %}

<!-- <img src="{{i.document.url}}" alt="Girl in a jacket" width="200" height="200; display: flex;"> -->
<h1>{{i.document.url}}</h1>

<h2>{{i.document.path}}</h2>



{% endfor %}

视图.py

def Home(request): 
    if request.method == 'POST': 
        if len(request.FILES) == 0:
            return redirect("/drive")
        else:
            photo = request.FILES['doc'] 
            Upload.objects.create(document = photo) 
            return redirect("/drive")
   
    

    if request.method == "GET": 
        photo = Upload.objects.all() 
        context = {
             'phone': photo 
             }   

    return render(request, 'Home.drive.html', context)

模型.py

from django.db import models

# Create your models here.
class Upload(models.Model):
    document = models.FileField(upload_to='documents')

标签: djangodjango-modelsdjango-viewsdjango-formsdjango-templates

解决方案


您可以像这样使用自定义TemplateTag

我有一条建议给你:我认为最好使用upload_to 属性的函数。

def get_image_upload_path(instance, filename):
    return os.path.join('Products', 'images', instance.name, filename)

class YourModel(models.model):
    image = models.ImageField(upload_to=get_image_upload_path)

推荐阅读