2013-05-02 4 views
3

Я пишу небольшой веб-сайт, который регистрируется, когда пользователи нажимают на ссылку (что, очевидно, номер телефона). Он делает это через представление, которое затем перенаправляется на этот номер телефона.Django redirect to `tel` url дает` SuspiciousOperation`

Естественно, (я согласен, что это должно быть поведение по умолчанию). Django видит это как SuspiciousOperation. В моем случае я делаю это намеренно. Как я могу подавить эту ошибку и разрешить представление, как я хочу?

ответ

1

В корневом каталоге вашего приложения, которое перенаправляет тел: URIs:

from django.http import HttpResponseRedirectBase 
HttpResponseRedirectBase.allowed_schemes += ['tel'] 
+0

Да, это сработало красиво. В итоге я создал подкласс HttpResponseRedirect, подобный тому, что вы здесь делали. Спасибо! –

+0

Собственно, это не подкласс, а глобальные схемы tel:. это важно, если вы используете общие представления, которые возвращают перенаправления. – Thomas

+0

Правильно, ваше решение не было подклассом, но мое было. Я закончил это, поэтому «SuspiciousOperation» не был подавлен для всего сайта, но только для моего одного представления, которое ему было необходимо. –

2

я не могу импортировать ошибку имя HttpResponseRedirectBase с первым ответом. Мне удалось сделать (почти), как и ожидалось, с:

from django.http.response import HttpResponseRedirectBase 
HttpResponseRedirectBase.allowed_schemes += ['tel'] 
+2

Вы повторяете существующий ответ: Почему? –

+0

Поскольку существующий ответ заставил меня иметь HttpResponseRedirectBase перед «.response», я добавил :-) – mansuetus

+0

Это изменение, которое возникает из-за более новой версии Django? –

Смежные вопросы