Вместо использования try, кроме block, вы можете просто использовать обычное условное предложение, чтобы проверить, не является ли next_page None. (Для ясности я добавил значение по умолчанию None
к вызову метода get, если ключ 'next_page'
не найден)
next_page = request.POST.get('next_page', None)
if next_page is not None:
# redirect code
else:
raise ImproperlyConfigured(
"No URL to redirect to. Either provide a url or define"
" a get_absolute_url method on the Model.")
РЕДАКТИРОВАТЬ:
Другая опция основана на просить прощения, а не разрешения:
try:
redirect(request.POST.get('next_page'))
except KeyError:
raise ImproperlyConfigured("text")
Здесь вам не нужно проверять, имеет ли значение next_page значение None, вы полагаетесь на функцию перенаправления, которая выдает ошибку, если она получает None. Затем вы поймаете это и поднимете свое Исключение.