Как я могу проверить, существует ли URL с блоками проверки допустимости Django?

Я хочу зарегистрироваться в django, если URL существует и если он делает я хочу показать что-то на экране, т.е.:

if URL_THAT_POINTS_TO_SOME_PDF exists 
     SHOW_SOMETHING
19
задан alexwlchan 7 March 2016 в 07:54
поделиться

2 ответа

Изменить: обратите внимание, это больше не действует для любой версии Django выше 1.5.

Я предполагаю, что вы хотите проверить, существует ли файл на самом деле, а не только объект (это просто оператор if )

Во-первых, я рекомендую всегда просматривать исходный код Django, потому что вы найдете отличный код , который вы могли бы использовать:)

Я предполагаю, что вы хотите сделать это в шаблоне. Нет встроенного тега шаблона для проверки URL-адреса, но вы можете использовать этот класс URLValidator в теге шаблона для его проверки. Проще говоря:

from django.core.validators import URLValidator
from django.core.exceptions import ValidationError

validate = URLValidator(verify_exists=True)
try:
    validate('http://www.somelink.com/to/my.pdf')
except ValidationError, e:
    print e

Класс URLValidator выдаст ошибку ValidationError , если не сможет открыть ссылку. Он использует urllib2 для фактического открытия запроса, поэтому он не просто использует базовую проверку регулярных выражений (но он также делает это.)

Вы можете вставить это в собственный тег шаблона, который вы узнаете, как создайте в django docs и вперед.

Надеюсь, это начало для вас.

48
ответ дан 30 November 2019 в 02:16
поделиться

Потребовалось дополнительно:

from django.core.exceptions import ValidationError

чтобы это заработало у меня. Просто говорю ;0)

2
ответ дан 30 November 2019 в 02:16
поделиться
Другие вопросы по тегам:

Похожие вопросы: