Функция yield передает поток в браузер, т. Е. Добавляет значение к ответу.
Мое требование состоит в том, чтобы вместо «добавления» существовала встроенная функция, которая перезаписывает старое значение, или просто скажите, не добавляет новое значение к старому ..?
Чтобы объяснить мое требование:
следующая функция в моем "views.py":
def handle_uploaded_file(f):
filename = "/media/Data/static/Data/" + f.name
uploaded = 0
perc = 0.0
filesize = f.size
destination = open(filename, 'wb+')
for chunk in f.chunks():
destination.write(chunk)
uploaded = uploaded + len(chunk)
yield(str((uploaded * 100) / filesize) + "% ")
destination.close()
yield(f.name + " (" + str(round(f.size/1024.0, 2)) + " KB) uploaded successfully.")
Ниже приведен вывод вышеуказанной функции:
2% 4% 7% 9% 11% 14% 16% 18% 21% 23% 25% 28% 30% 32% 35% 37% 39% 42% 44% 46% 49% 51% 53% 56% 58% 60% 63% 65% 67% 70% 72% 74% 77% 79% 81% 84% 86% 89% 91% 93% 96% 98% 100% Butterfly.wmv (2732.16 KB) uploaded successfully.
Как видите, процент добавляется к предыдущим переданным значениям, тогда как я хочу перезаписать старое значение новым.
Есть ли встроенная функция для такого поведения в Django / python?Или я могу смоделировать это с помощью кода?
Заранее спасибо.