Перенаправление из Generic View DetailView в Django

Я использую универсальное представление Django DetailView на основе классов для поиска объекта для отображения. При определенных обстоятельствах вместо отображения объекта я хочу отступите и вместо этого выполните HTTP-повторение. Я не понимаю, как я это делаю. Это когда пользователь нажимает на объект в моем приложении, но не использует канонический URL-адрес. Так, например, для URL-адресов StackOverflow form:

http://stackoverflow.com/<content_type>/<pk>/<seo_friendly_slug>

например:

http://stackoverflow.com/questions/5661806/django-debug-toolbar-with-django-cms-and-django-1-3

Фактически вы можете ввести что угодно в качестве части seo_friendly_slug, и она перенаправит вас на правильный канонический URL для объекта, найденного через PK.

Я хочу сделать то же самое в моем DetailView . Получите объект, убедитесь, что это канонический URL, и, если нет, перенаправьте на get_absolute_ur элемента l URL.

Я не могу вернуть HttpResponseRedirect в get_object, так как он ожидает найденный объект. Кажется, я не могу вернуть его из get_context_data, поскольку он просто ожидает данных контекста.

Может быть, мне просто нужно написать ручное представление, но я подумал, знает ли кто-нибудь, возможно ли это?

Спасибо!

Людо.

16
задан Ludo 23 June 2011 в 15:26
поделиться