Я решил, что хотел бы использовать систему моделей django вместо кодирования необработанного SQL для взаимодействия с моей базой данных, но у меня возникла проблема, которую, безусловно, можно избежать.
Мой models.py содержит:
class Student(models.Model):
student_id = models.IntegerField(unique = True)
form = models.CharField(max_length = 10)
preferred = models.CharField(max_length = 70)
surname = models.CharField(max_length = 70)
и я заполняю его, просматривая список следующим образом:
from models import Student
for id, frm, pref, sname in large_list_of_data:
s = Student(student_id = id, form = frm, preferred = pref, surname = sname)
s.save()
Я не хочу каждый раз сохранять это в базу данных, но не хочузнаю другой способ заставить django не забывать об этом (я бы лучше добавил все строки, а затем сделал бы один коммит).
Есть две проблемы с кодом в его нынешнем виде.
Это медленно - около 20 студентов обновляются каждую секунду.
Он даже не проходит через large_list_of_data, вместо этого выдает ошибку DatabaseErrorговоря "невозможно открыть файл базы данных".(Возможно, потому что я использую sqlite3.)
Мой вопрос: как я могу остановить эти две вещи?Я предполагаю, что корень обеих проблем заключается в том, что у меня есть s.save (), но я не вижу способа легко собрать студентов и затем сохранить их за один коммит в базу данных.