В дополнение к ответу Неда Батчелдера и упоминанию комментария Бернхарда Кирхера:
В моем случае мне нужно было очистить очень большую базу данных с помощью веб-приложения:
Book.objects.all().delete()
Который в среде разработки SQLlite вернул:
too many SQL variables
Итак, я добавил небольшой обходной путь. Возможно, это не самое лучшее, но, по крайней мере, оно работает, пока опция усеченной таблицы не будет встроена в ORM Джанго:
countdata = Book.objects.all().count()
logger.debug("Before deleting: %s data records" % countdata)
while countdata > 0:
if countdata > 999:
objects_to_keep = Book.objects.all()[999:]
Book.objects.all().exclude(pk__in=objects_to_keep).delete()
countdata = Book.objects.all().count()
else:
Book.objects.all().delete()
countdata = Book.objects.all().count()
Кстати, часть моего кода была основана на " Django Удалить все, кроме последних пяти, из набора запросов ".
Я добавил это, зная, что ответ уже получен, но, надеюсь, это дополнение поможет другим людям.