Можно ли, ипользуя Django, создать сразу несколько записей в БД не перезагружаю страницу?

Да, с использованием Django вы можете создавать несколько записей в базе данных без необходимости перезагрузки страницы. Для этого можно использовать AJAX, технологию, позволяющую отправлять асинхронные запросы на сервер без перезагрузки страницы.

В Django для работы с AJAX можно использовать различные подходы, такие как использование библиотеки jQuery или нативного JavaScript. Ниже приведены примеры реализации обоих подходов.

1. Использование jQuery:

Сначала установите библиотеку jQuery, если она не установлена:

pip install django-jquery

Включите библиотеку добавлением следующей строки в ваш файл настроек проекта (settings.py):

JQUERY_URL = 'https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js'

Затем создайте представление (view), которое будет обрабатывать AJAX-запросы. Например, вы можете создать функцию, которая будет принимать POST-запросы и создавать несколько записей в базе данных:

from django.http import JsonResponse

def create_records(request):
    # Проверяем, что запрос является POST-запросом
    if request.method == 'POST':
        # Получаем данные из запроса
        data = request.POST.getlist('records')
        
        # Создаем записи в базе данных
        for record_data in data:
            Record.objects.create(data=record_data)
        
        # Возвращаем JSON-ответ с информацией об успешном создании записей
        return JsonResponse({'message': 'Записи успешно созданы'})

На стороне клиента вы можете использовать jQuery для отправки AJAX-запроса без перезагрузки страницы:

$(document).ready(function() {
    // При отправке формы, отправляем AJAX-запрос
    $('#myForm').submit(function(event) {
        event.preventDefault(); // Предотвращаем стандартное поведение формы
        
        // Получаем данные формы
        var formData = $(this).serializeArray();
        
        // Отправляем AJAX-запрос на сервер
        $.ajax({
            url: '/create_records/', // URL, который соответствует вашему представлению (view)
            type: 'post',
            data: {records: formData}, // Данные для создания записей
            dataType: 'json',
            success: function(response) {
                // Обрабатываем ответ от сервера
                console.log(response.message);
            },
            error: function(xhr, status, error) {
                // Обрабатываем ошибку AJAX-запроса
                console.error(error);
            }
        });
    });
});

2. Использование нативного JavaScript:

На стороне сервера, создайте представление, аналогичное предыдущему примеру:

from django.http import JsonResponse

def create_records(request):
    if request.method == 'POST':
        data = request.POST.getlist('records')
        
        for record_data in data:
            Record.objects.create(data=record_data)
        
        return JsonResponse({'message': 'Записи успешно созданы'})

На стороне клиента, используйте нативный JavaScript для отправки AJAX-запроса:

document.addEventListener('DOMContentLoaded', function() {
    var form = document.getElementById('myForm');
    
    form.addEventListener('submit', function(event) {
        event.preventDefault();
        
        var formData = new FormData(form);
        
        var xhr = new XMLHttpRequest();
        xhr.open('POST', '/create_records/');
        xhr.onload = function() {
            if (xhr.status === 200) {
                var response = JSON.parse(xhr.responseText);
                console.log(response.message);
            } else {
                console.error('Ошибка', xhr.status);
            }
        };
        xhr.send(formData);
    });
});

В обоих примерах при отправке формы будут созданы несколько записей в базе данных без перезагрузки страницы. В ответ на запрос сервер вернет JSON-объект с информацией о успешном создании записей. Вы можете изменить код, чтобы он соответствовал вашей модели базы данных и требованиям проекта.

Помимо этого, также можно использовать техники валидации данных, обновления интерфейса и взаимодействия с базой данных через AJAX, в соответствии с вашими потребностями и проектом.