Я предполагаю, что Вы могли открыть всплывающее окно и вызов это диалоговое окно. Я не уверен в деталях, но я вполне уверен, можно закрыть окно программно, что Вы открылись из JavaScript. Это было бы достаточно?
Вместо
context.Response.BinaryWrite(bytes);
используйте
context.Response.TransmitFile(context.Server.MapPath(url));
Это позволит избежать чтения всего файла в память.
replace (microsecond = 0) Я подозреваю, что wpis.entry.lastChangeDate
каким-то образом был преобразован в строку в представлении, прежде чем попасть в шаблон.
Для проверки этой гипотезы, вы можете просто проверить в представлении, есть ли у него какое-либо свойство / метод, который есть только у строк - например, wpis.entry.lastChangeDate.upper
, а затем посмотреть, не вылетает ли шаблон.
Вы также можете создайте свой собственный настраиваемый фильтр и используйте его для целей отладки, позволяя ему проверять объект и записывая результаты проверки на странице или просто на консоли. Он сможет проверить объект и проверить, действительно ли это DateTimeField.
Почему бы вам не использовать models.DateTimeField (
auto_now_add
= True)
, чтобы установить дату и время при создании?