如何在Django中上传多张图片

models.py

from django.db import models

class Ads(models.Model):
    business_id = models.CharField(max_length=20,blank=True,null=True)
    description = models.CharField(max_length=100,null=True)
    image = models.ImageField(upload_to='images',null=True)

forms.py

from django import forms
from .models import Ads

class AdsForm(forms.Form):

    class Meta:
        model = Ads
        fields = '__all__'

view.py

from .models import Ads
from .forms import AdsForm
from django.core.files.storage import FileSystemStorage 

def ads_view(request):
    if request.method == 'POST':
        form = AdsForm(request.POST,request.FILES)
        if form.is_valid():
            business_id = request.POST.get('business_id')
            description = request.POST.get('description')
            image = request.FILES['image']
            print(business_id)
            print(description)
            print(image)
            file_storage = FileSystemStorage()
            ads_obj = Ads(business_id=business_id,description=description,image=file_storage.save(image.name,image))
            ads_obj.save()
            return redirect('/ads/')
    else:
        form = AdsForm()
        return render(request,'ads/myads.html',{'form': form})

myads.html

<form action="#" method="post" enctype="multipart/form-data">
    <input type="text" name="business_id" class="form-control form-control" id="colFormLabelSm" placeholder="">
    <textarea name="description" class="form-control" id="exampleFormControlTextarea1" rows="3"></textarea>
    <input type="file" name="image" class="form-control" id="exampleFormControlInput1" multiple>
    <button type="submit" class="btn btn-primary mt-5">Submit</button>
</form>

在这里,我尝试上传多张图片,但鉴于我最后只选择了一张图片。如何获取所有图像并保存所有图像。帮助我解决这个问题。

magic398504968 回答:如何在Django中上传多张图片

您可以如下创建一个带有外键的单独图像类作为Ads,并在模板中将这些图像称为object.image_set.all(),以便您可以添加从Ads模型继承的任意数量的图像>

class Ads(models.Model):
    business_id = models.CharField(max_length=20,blank=True,null=True)
    description = models.CharField(max_length=100,null=True)

class Image(models.Model):
    ads = models.ForeignKey(Ads,....)
    image = models.ImageField(upload_to='images',null=True)
本文链接:https://www.f2er.com/3066375.html

大家都在问