Найти - Пользователи
Полная версия: Оптимизация urlpatterns. Возврат в случае ошибки
Начало » Django » Оптимизация urlpatterns. Возврат в случае ошибки
1
dissdoc
Добрый вечер. Сложилась нехорошая ситуация, читаю доки. Не совсем понятно, как быть
В данный момент использую в url функцию (или метод?) direct_to_template
url(r'^(?P<id>[-\w]+)/$', direct_to_template,
kwargs={
'template': 'detail.html',
'extra_context': {'post': lambda: Post.objects.get(id=id)}
},
name='detail'),
Возникает такая проблема. Что делать, если не находит ничего? Возникает что-то вроде ошибки Post.DoesNotExist?
Если переносить в файл views.py то все понятно (return <какое-то действие другое>). Но хочется узнать, разве нет способа запихнуть такую обработку в urls.py?
Yurietc
В таких случаях лучше использовать django.views.generic.list_detail.object_detail вместо direct_to_template:
url(r'^(?P<object_id>[-\w]+)/$',
'django.views.generic.list_detail.object_detail',
{
'queryset': Post.objects.all(),
'template_name': 'detail.html',
'template_object_name': 'post',
},
name='detail')
если такого поста не существует, 404 ошибка будет генерироваться автоматически.
dissdoc
Да, это я знаю.
Но я вчера уже доки почитал, проще конечно же свои вьюхи делать.
Потому что мне не всегда нужно выходить на 404 ошибку
Бывает нужно специально как-то обработать
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB