想为一个用户上传多张图片,只允许我上传一张

纳德

我希望用户能够上传多张图片,但是我只能让它做一张。这是我的代码:

urls.py

from . import views
from django.urls import path


app_name = 'accounts'

urlpatterns = [
    path('login/', views.login, name='login'),
    path('logout/', views.logout, name='logout'),
    path('profile/<int:user_id>', views.profile, name='profile'),
    path('profile/<int:user_id>/upload/', views.upload_pics, name='upload_pics'),


]

这是我的看法:

def upload_pics(request, user_id):

    user_profile = get_object_or_404(User, pk=user_id)

    if request.method == "POST":

        file_list = request.FILES.getlist('files')
        for afile in file_list:

            pic = File()
            pic.user = user_profile
            pic.image = afile
            pic.save()

            return redirect("groups:index")

    else:
        render(request, 'accounts/pic_upload.html')
    return render(request, 'accounts/pic_upload.html')

最后,是以下形式(pic_upload.html):

<form action="{% url 'accounts:upload_pics' user.id %}" method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <table>
      <tr>
        <td>Select Pictures: </td><td><input name="files" type="file" size="50" accept="image/*" multiple>  </td>
        <td><button type="submit"> Upload </button> </td>
       </tr>
    </table>
</form>

这是我的模型:

from django.db import models
from django.contrib.auth.models import User
# Create your models here.

class File(models.Model):
    image = models.FileField(upload_to='images/')
    user = models.ForeignKey(User, on_delete=models.CASCADE, related_name='files')

我已经尝试了好几天,但是没有运气。我已经研究过表单集,但是似乎存在用于完成多个文件上传的更简单方法。对于为什么只保存一张照片的任何指导,我们将不胜感激。谢谢你

kh
def upload_pics(request, user_id):

    user_profile = get_object_or_404(User, pk=user_id)

    if request.method == "POST":

        file_list = request.FILES.getlist('files')
        for afile in file_list:

            pic = File()
            pic.user = user_profile
            pic.image = afile
            pic.save()

            return redirect("groups:index")

    else:
        render(request, 'accounts/pic_upload.html')
    return render(request, 'accounts/pic_upload.html')

def upload_pics(request, user_id):

    user_profile = get_object_or_404(User, pk=user_id)

    if request.method == "POST":

        file_list = request.FILES.getlist('files')
        for afile in file_list:

            pic = File()
            pic.user = user_profile
            pic.image = afile
            pic.save()

        return redirect("groups:index")

    else:
        render(request, 'accounts/pic_upload.html')
    return render(request, 'accounts/pic_upload.html')

return redirect("groups:index")不应for阻塞,每次结束后都应返回,这就是为什么只保存一个文件的原因。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

Javascript代码将最后一张图片移动到多张图片之间的第一张图片

在一个请求中上传多张图片

在CakePHP 1.2中从同一表单上传多张图片

上传页面的一部分或页面中的一张图片-第一张(尽快)

Django总共只允许一个用户会话

是否可以创建一个消息扩展名,以允许上传图片和提及用户?

Ant Design上传:仅预览一张图片?

通过清除上一张图片上传图片

如果上传了第二张图片,则第一张图片将被删除,第二张图片将取代此第一张图片,如何在本机中实现

我如何检测最后一张图片并禁用jQuery中的下一个按钮

如何每个用户只允许一个活动会话

上传并显示一种产品的多张图片?

Uploadify多上传生成图钉仅上传和覆盖一张图片

允许用户仅使用Plupload上传一个文件

上传另一张图片时替换一张图片

两张图片到一个pdf文件中每页一张图片

向上传的图片表添加删除其中一张图片的选择

如何只允许一个用户查看“ UpdateView”?

图片拖放,上传-只允许上传一张图片?

代号 一张图片上传到 S3 存储桶权限

为什么我上传了一些图片,结果只上传了一张图片

Firebase 连续上传中途停止,只上传最后一张图片

Spring Security 只允许一个用户连接

如果一张图片可用,则隐藏多张图片

上传多张图片时只保存一张图片

用户在删除第一张图片之前上传第二张图片

一次上传一张图片但有预览问题 - React Drop zone

为什么如果我上传一张图片 Spring Boot 在我的电脑中搜索?

如何让用户在一个页面上传或更改上传的图片,并在另一个页面显示?