django - 从一个按钮上传多张图片
问题描述
我的目标是有一个按钮,用户可以从中上传多张图片。
我从这个堆栈帖子顶部回复中实现了批量图像上传功能。
我将如何将其转换为一个按钮来上传要上传的多个图像
看法:
def testing(request):
ImageFormSet = modelformset_factory(PostImages, form=ImageForm, extra=1)
if request.method == 'POST':
postForm = PostForm(request.POST)
formset = ImageFormSet(request.POST, request.FILES,
queryset=PostImages.objects.none())
if postForm.is_valid() and formset.is_valid():
testID = postForm.save(commit=False)
testID.user = request.user
testID.save()
for form in formset.cleaned_data:
#this helps to not crash if the user
#do not upload all the photos
if form:
image = form['image']
photo = PostImages(post=PostForm, image=image)
photo.save()
# use django messages framework
messages.success(request,
"Yeeew, check it out on the home page!")
return HttpResponseRedirect("/")
else:
print(postForm.errors, formset.errors)
else:
postForm = PostForm()
formset = ImageFormSet(queryset=PostImages.objects.none())
return render(request, 'blog/test.html',
{'postForm': postForm, 'formset': formset})
模板:
<form id="postID" method="post" action="" enctype="multipart/form-data">
{% csrf_token %}
{% for hidden in postForm.hidden_fields %}
{{ hidden }}
{% endfor %}
{% for field in postForm %}
{{ field }} <br />
{% endfor %}
{{ formset.management_form }}
{% for form in formset %}
{{ form }}
{% endfor %}
<input type="submit" name="submit" value="Submit" />
模型:
class Post(models.Model):
title = models.CharField(max_length=100)
hero_image = models.ImageField(default='default.jpg', upload_to='hero_images')
content = RichTextUploadingField(blank=True, null=True)
date_posted = models.DateTimeField(default=timezone.now)
author = models.ForeignKey(User, on_delete=models.CASCADE)
class PostImages(models.Model):
post = models.ForeignKey(Post, default=None, on_delete=models.CASCADE)
image = models.ImageField(upload_to='post_images')
date_posted = models.DateTimeField(default=timezone.now)
解决方案
推荐阅读
- r - 使用 gganimate 和 view_follow 和 geom_tile 时如何摆脱 coord_flip 引起的轴闪烁?
- angular - 在两个地方使用包装在 ng-template 中的 ng-content
- javascript - 我想从网页底部每隔 980px 放置一个带有“height_mark”类的 div
- python - python df:将日期索引从毫秒转换为天
- java - 使用 ImageIO 导出 8 位 dpeth JPEG
- r - 如何在允许变量之间存在时间滞后的同时合并 2 个数据集?
- php - 在无脂肪框架中从数据库中检索数据
- excel - 单元格引用不适用于 Excel 中的公式
- regex - python正则表达式通过以元音开头的字符串的所有组合分割字符串
- r - 随机森林的 tuneRF 与插入符号调谐