Q:

More pythonic way for exceptions?

I have a method that must return one of three objects depending on their existence.
My implementation
try:
    return Model.objects.get(param=param)
except Model.DoesNotExist as ex:
    # go to the next verification
    pass

try:
    return RelatedModel.objects.get(param=param).model
except RelatedMolel.DoesNotExist as ex:
    # get the default model
    pass

return Model.objects.get_default()

So question for the guru of python - is it a more pythonic implementation than inner try/catch blocks or ?
try:
    return Model.objects.get(param=param)
except Model.DoesNotExist as ex:

    try:
        return RelatedModel.objects.get(param=param).model
    except RelatedModel.DoesNotExist as ex:

        return Model.objects.get_default()

A:

From the Zen of Python (import this):

Flat is better than nested.

I would prefer the first version in this case.

