Повысьте 404 и продолжите цепочку URL

Ну, это не скомпилирует, потому что в Вашем вызове к getCommand Вы не являетесь передающими в строке с процедурой, но до массива, который не должен работать без проблем.

29
задан drhagen 7 February 2018 в 18:50
поделиться

1 ответ

Это определенно логика представления; all urls.py предназначен для сопоставления шаблонов URL, а не для проверки. Вы можете использовать исключение Http404 , чтобы справиться с этим.

from django.http import Http404

def detail(request, poll_id):
    try:
        p = Poll.objects.get(pk=poll_id)
    except Poll.DoesNotExist:
        raise Http404
    return render_to_response('polls/detail.html', {'poll': p})

В качестве альтернативы вы можете найти методы get_object_or_404 или get_list_or_404 , которые немного сокращают его.


Обещанное редактирование следует. Не совсем то, что вы ищете, но ...

urlpatterns = (
    url(r'^$', list_titles, name='list'),
)

if 1=1: # Your logic here
    urlpatterns += ( url(r'^$', list_titles, name='list'), )

urlpatterns += (
    url(r'^(?P<title>\S+?)/$', show_title, name='title'),
    url(r'^spam/$', spam_bar),
    url(r'^foo/$', foo_bar),
}
41
ответ дан 28 November 2019 в 01:49
поделиться
Другие вопросы по тегам:

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