У меня есть команда управления Django, которая выполняет довольно немного обработки, поэтому у меня есть вывод ее прогресса в процентах. Я хотел бы использовать технику, как описано в ответах here или here. Я знаю from the Django docs, что sys.stdout
необходимо заменить на self.stdout
при использовании внутри команды управления, но мне все еще не повезло. Это python 2.7, поэтому я не могу дать end
kwarg до print
. Вот одна из вещей, которые я пробовал в handle
объекта Command:Динамический однострочный вывод в команде управления Django
i = 0
for thing in query:
self.stdout.write("\r%%%s" % (100 * float(i)/float(query.count()))
i += 1
Я попробовал несколько других методов, описанных в ответах на подобные вопросы, в том числе с использованием ANSI escape sequences. Есть ли что-то особенное в том, как команды управления Django выводят вывод? Как я могу добиться эффекта, который я ищу?
Спасибо за это! я делал 'write' с' end = '\ r'' без 'flush()' и вытягивал мои волосы! – theannouncer