首页 > 解决方案 > 是否可以直接从 django 表单上传图片?

问题描述

我想在我的网站(在 Heroku 服务器中)运行我的 Dog vs Cat 分类器我不想消耗云中的空间同时不想将上传的图像保存在数据库中。这是我在views.py文件中的代码

def test_model(request):
    if request.method == 'POST': 
        form = modelForm(request.POST, request.FILES) 
        if form.is_valid():
            form.cleaned_data['label_name']
            form.save()
            inp_img = str(form['test_img'].value())
            path = "./media/img/{}".format(inp_img)
            dest = "./media/img/"
            resz(path,dest,inp_img)
            inp = pred_dog_cat().prepare(path)
            pred,label = pred_dog_cat().prediction(inp)
            pred = round(pred *100,2)
            params = {'inpImg':inp_img,'pred':pred,'label':label}
            return render(request,'dcapp/output.html',params) 

modelForm类在 forms.py中

from django import forms 
from .models import *

class modelForm(forms.ModelForm): 

    class Meta: 
        model = Test_model 
        fields = ['test_img','label_name'] 

models.py文件是:

class Test_model(models.Model):
    model_id = models.AutoField(primary_key=True)
    label_name = models.CharField(max_length=50,default="None")
    test_img = models.ImageField(upload_to='img/',default="None Selected") 
    output = models.CharField(max_length=50,default="None")
    def __str__(self):
        self.str_img = str(self.test_img)
        return self.str_img

我需要一些关于如何从表单上传图像而不将其保存在数据库中的指导?

是否可以在不保存本地的情况下上传它?(因为我不想占用服务器空间)

标签: pythonhtmldjangodeep-learningdjango-forms

解决方案


在您的代码中更改它,尝试一下:

if form.is_valid():
    my_form = form.save(commit=False)
    my_form.cleaned_data['label_name']
    #get the image file from model
    my_form = request.FILES['test_img'] 
    my_form.save()

推荐阅读