首页 > 解决方案 > Django,一页上传两个文件

问题描述

模型.py:

class InJPG(models.Model):

    file_path = models.FileField(upload_to="media",unique=True)

视图.py

from model import InJPG

def get_name(request):
    file1=InJPG(request.POST or None)
    file2=InJPG(request.POST or None)
    if file1.is_valid():
        file1.save()  
    if file2.is_valid():
        file2.save()

    return render(request,'files.html',{'file1':file1,'file2':file2})

文件.html

 ...

{% block page %}
    <form method="post" enctype="multipart/form-data">
        {% csrf_token %}
        {{file1}}
        <button type="submit">upload file1</button>
    </form>

    <form method="post" enctype="multipart/form-data">
        {% csrf_token %}
        {{file2}}
        <button type="submit">upload file2</button>
    </form>
{% endblock %}

我有网页,可以上传两个文件file1 and file2

问题:我只能一次加载一个文件,当我上传第一个文件时页面正在刷新。

我想使用一个按钮加载两个文件。或两个加载按钮而不刷新第二个表单。

我正在使用两种形式,因为我想分离网页并在那里使用卡片类

标签: pythondjango

解决方案


这是因为文件必须作为两个单独的输入传递到相同的形式。

尝试这个:

{% block page %}

<form method="post" enctype="multipart/form-data" required="True">
    {% csrf_token %}
    <input type="file" name="file1">
    <input type="file" name="file2">
  <button type="submit">Submit both files</button>
</form>

 {% endblock %}

推荐阅读