django - 尝试上传多张图片,但只保存了 1 张
问题描述
我试图允许用户上传多张图片,但只有一张图片保存到数据库中。这是我的模特
from django.db import models
from django.contrib.auth.models import User
class File(models.Model):
files = models.FileField(upload_to='images/')
user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='files')
接下来,上传的表单如下所示:
from django import forms
from .models import File
class FileForm(forms.ModelForm):
class Meta:
model=File
fields=('files',)
widgets={'files':forms.FileInput(attrs={'id':'files','required':True,'multiple':True})}
最后,“上传图片”视图如下:
def upload_pics(request, user_id):
if request.method == "POST":
form = FileForm(request.POST, request.FILES)
files = request.FILES.getlist('file_field')
if form.is_valid():
pics = form.save(commit=False)
pics.user = request.user
pics.files = request.FILES[files]
return redirect("groups:index")
else:
form = FileForm()
render(request, 'accounts/account_form.html', {'form':form})
return render(request, 'accounts/account_form.html', {'form':form})
问题是只保存了一张图片。非常感谢任何帮助!
解决方案
您的代码看起来不错,但您正在寻找的似乎是 Django Formsets。它将允许您一次上传多个图像。也看看这个问题的答案:how to upload multiple images to a blog post in django
推荐阅读
- django - Django + PostrgreSQL 性能问题
- python-3.x - 如何在特定标签内获取 xml 中的所有嵌套标签和文本?
- python - 如何根据 Numpy 风格的文档字符串记录 kwargs?
- push-notification - 牛轧糖中的通知图标问题
- apache-kafka - 在 WSL2 中通过 IDE 连接到 kafka 服务器时出错
- cluster-computing - couchbase 中的 Rabalance 因错误而失败,没有 qurom
- javascript - Firebase - Angular / 我无法使用 orderByChild 方法显示我的结果
- postgresql - 使用 JPA + PostgreSql 在非 id(pk) 列中自动增量设置
- unity3d - 我的动画师正在创建同步动画?
- php - 如何在php中的if语句之外使用变量