Можно ли загрузить изображение непосредственно из django форм? - PullRequest
0 голосов
/ 30 марта 2020

Я хотел запустить свой классификатор Dog vs Cat на своем веб-сайте (на сервере heroku). Я не хочу одновременно использовать пространство в облаке и не хочу сохранять загруженное изображение в базу данных. Это мой код в 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

Мне нужно несколько советов о том, как загрузить изображения из форм, не сохраняя их в базе данных?

И

Можно ли загрузить его без локального сохранения? (поскольку я не хочу использовать пространство на сервере)

1 Ответ

0 голосов
/ 30 марта 2020

Измените это в своем коде, попробуйте:

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()
...