Как сохранить и обработать несколько файлов в Django

У меня есть функционирующий код на Django и он выполняет функцию сохранения

Как мне сделать так чтоб мой проект принимал и обрабатывал несколько файлов одновременно ?

views.py

def Upload(request):
    if request.user.is_superuser == True:
        if request.method == 'POST' and request.FILES['myfile']:
            myfile = request.FILES['myfile']
            fs = FileSystemStorage()
            filename = fs.save(myfile.name, myfile)
            env = Env()
            env.read_env()
            gre = psycopg2.connect(
                database=env.str('POSTGRES_DB'),
                user=env.str('POSTGRES_USER'),
                password=env.str('POSTGRES_PASSWORD'),
                host=env.str('POSTGRES_HOST'),
                port=env.str('POSTGRES_PORT')
            )
            cur_gre = gre.cursor()
            conn = sqlite3.connect(str(f'media/{filename}'))
            cursor = conn.cursor()
            table_names = cursor.execute("SELECT name FROM sqlite_master WHERE type='table';").fetchall()
            print(table_names)
            table_name = []
            for i in table_names:
                table_name.append(i[0])

            if 'main_whitelist' in table_name:
                cursore = conn.execute(f"SELECT * FROM main_whitelist").fetchall()
                for i in cursore:
                    try:
                        sql = f'''INSERT INTO "main_whitelist" (word) VALUES (%s)'''
                        date = (i[1],)
                        try:
                            try:
                                cur_gre.execute(sql, date)
                            except psycopg2.errors.InvalidTextRepresentation:
                                pass
                        except psycopg2.errors.InFailedSqlTransaction:
                            pass
                        gre.commit()
                    except psycopg2.errors.UniqueViolation:
                        pass

main.html

{% load static %}

{% block content %}


<style>
...
</style>
<form method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <input type="file" name="myfile">
    <button type="submit" class="button-9" role="button">Загрузить</button>
</form>

{% if uploaded_file_url %}
<p>File uploaded at: <a href="{{ uploaded_file_url }}">{{ uploaded_file_url }}</a></p>
{% endif %}

{% endblock %}

Используйте multiple="multiple" для вашего input. Это позволит выбирать несколько файлов.

<form method="post" enctype="multipart/form-data">
    {% csrf_token %}
    <input type="file" name="myfile" multiple="multiple">
    <button type="submit" class="button-9" role="button">Загрузить</button>
</form>

Во views.py в Upload получите их из request.FILES и работайте с ними как вам угодно.

Вернуться на верх