Александр: А "простое лучше, чем сложное". Поэтому чем меньше переменных - тем проще) Конечно, многоаргументные вложенные лямбды вряд ли можно назвать простыми, но тут что values - список значений, что dct.values() - список значений. Едва ли это усложняет чтение.
Антон Иванов: 20 миллионов - не очень большая таблица. Индексы какие стояли? Как таблица выглядела? Какие запросы? Сколько оперативы на сервере? Какая БД? Как тюнили?
Terras: create вообще не нужно использовать для создания юзера. create - это наивное создание модели, все поля, которые ты указываешь в create будут записаны в БД "как есть", если метод create не переопределён. Реализацию create_user можешь посмотреть здесь https://github.com/django/django/blob/master/djang...