Всего имеется около 2000 записей, но каждый раз, когда я выполняю запрос POST, сервер выключается (без вывода ошибок в консоли или браузере).
Общий размер записей не превышает 200КБ, но сервер всегда падает после обработки 334 записей (если я загружаю по одному один) или 300 записей (если я загружаю пакетами по 100).
Я попробовал изменить "DATA_UPLOAD_MAX_NUMBER_FIELDS" (каждая запись модели имеет 20 параметров) на 10 000, чтобы быть уверенным, "DATA_UPLOAD_MAX_MEMORY_SIZE " и "FILE_UPLOAD_MAX_MEMORY_SIZE до 25 МБ, но это похоже, не имеет никакого эффекта. Это также не дает мне никаких ошибок, которые помогли бы мне понять проблему.
Это моя структура кода:
views.py (перед завершением работы загружается 334 записи)
Код: Выделить всё
def settings(request):
if request.method == "POST" and "update_report" in request.POST:
Item.objects.all().delete()
from xxx import items
try:
for item in items:
Item.objects.create(
propertyA = item.get('A'),
propertyB = item.get('B'),
propertyC = item.get('C'))
except IntegrityError as e:
print(f"Integrity error: {e}")
template = loader.get_template("xxxx\yyyy.html")
context = {some context}
return HttpResponse(template.render(context, request))
Код: Выделить всё
def settings(request):
if request.method == "POST" and "update_report" in request.POST:
Item.objects.all().delete()
from xxx import items
items_list = [Item(propertyA = item.get('A'),
propertyB = item.get('B'),
propertyC = item.get('C'))
for item in items]
chunk_size = 100
try:
for i in range(0, len(items_list), chunk_size):
Item.objects.bulk_create(items_list[i:i+chunk_size])
except IntegrityError as e:
print(f"Integrity error: {e}")
template = loader.get_template("xxxx\yyyy.html")
context = {some context}
return HttpResponse(template.render(context, request))
Код: Выделить всё
....
{% csrf_token %}
Update report>/button>
....
спасибо
Подробнее здесь: https://stackoverflow.com/questions/791 ... ase-via-po
Мобильная версия