Проблема действительно в PyDev, а не в вашем коде. То, что вы сделали, абсолютно правильно, но у IDE всегда будут проблемы с разрешением атрибутов в динамическом языке, таком как Python. В случае исключения DoesNotExist оно добавляется через __metaclass__
, а не через обычное наследование объектов, поэтому PyDev вряд ли сможет его найти. Тем не менее, это должно определенно работать.