int.TryParse
, вероятно, немного легче:
public static int? ToNullableInt(this string s)
{
int i;
if (int.TryParse(s, out i)) return i;
return null;
}
Редактирование @Glenn int.TryParse
"встроен в платформу". Это и int.Parse
способ проанализировать строки к ints.
если вы используете RequestContext
, вы можете сделать следующее:
<p>You used: {% if request.is_secure %}HTTPS{% else %}HTTP{% endif %}
См. соответствующую часть документации Django.
Вам необходимо включить соответствующий обработчик контекста запроса в вашем файле setting.py:
TEMPLATE_CONTEXT_PROCESSORS = ('django.core.context_processors.request',)
В шаблоне теперь будет переменная с именем request, которая содержит текущий HttpRequest. Вы можете использовать его, чтобы найти протокол:
{{ request.is_secure }}
Попробуйте использовать RequestContext и request.is_secure
в своем шаблоне.
Одно предостережение: процесс обнаружения HTTPS может отличаться от одного сервера к другому, поэтому вы можете нужно немного поработать, чтобы заставить request.is_secure
заработать. Вы можете заставить его работать, либо убедившись, что ваш интерфейсный / обратный прокси-сервер устанавливает HTTP_X_FORWARDED_HOST, либо написав класс промежуточного программного обеспечения, настраиваемый для вашей настройки.
Используйте ограниченный [1] код SetRemoteAddrFromForwardedFor [2] в качестве отправной точки , если вы выберете собственный маршрут промежуточного программного обеспечения.
(Мне разрешена только одна ссылка на сообщение, поэтому прошу прощения за перепутанные ссылки)
[1]: docs.djangoproject.com/en/dev/releases/1.1/#id1 " Примечания к выпуску Django 1.1 - Удалено промежуточное ПО SetRemoteAddrFromForwardedFor "
[2]: code.djangoproject.