При добавлении двух чисел с плавающей запятой, как правило, имеется некоторая ошибка. Д. Голдберг «Что каждый компьютерный ученый должен знать о арифметике с плавающей точкой» подробно описывает эффект и причины, а также как рассчитать верхнюю границу ошибки и как рассуждать о точность более сложных вычислений.
При добавлении float к целому числу целое сначала преобразуется в float с помощью C ++, поэтому добавляются два поплавка и вводятся ошибки по тем же причинам, что и выше.
Я думаю, что вам нужно иметь доступ к контексту запроса, см. RequestContext.
Если вам нужен фактический заголовок HTTP Host, см. Комментарий Дэниела Роземана к ответу @ Phsiao. Другой альтернативой является использование среды contrib.sites , вы можете установить каноническое имя домена для сайта в базе данных (сопоставление домена запроса с файлом настроек с правильным SITE_ID - это то, что вы придется делать самостоятельно через настройку вашего веб-сервера). В этом случае вы ищете:
from django.contrib.sites.models import Site
current_site = Site.objects.get_current()
current_site.domain
вам придется самостоятельно поместить объект current_site в контекст шаблона, если вы хотите его использовать. Если вы используете это повсеместно, вы можете упаковать это в обработчик контекста шаблона.