def get_object_or_404(klass, *args, **kwargs):
Calls get() on a given model manager, but it raises Http404 instead of the model’s DoesNotExist exception.
is shortcut for
try:
return Model.objects.get(pk=...)
except Model.DoesNotExist:
raise Http404()
def get_list_or_404(klass, *args, **kwargs):
Returns the result of filter() on a given model manager cast to a list, raising Http404 if the resulting list is empty.
is shortcut for
obj_list = list(Model.objects.filter(title=...))
if not obj_list:
raise Http404()
return obj_list
Поскольку ярлык get_object_or_404 вызывает get (), исключение MultipleObjectsReturned будет вызвано, если будет найдено более одного объекта.
Поскольку ярлык get_list_or_404 возвращает список, такое исключение не возникает за исключением того, что возвращенный список не пуст.