Обработка исключений в разных точках в ваших представлениях может быть очень трудоемкой. А как насчет определения собственного менеджера моделей в файле models.py, например
class ContentManager(model.Manager):
def get_nicely(self, **kwargs):
try:
return self.get(kwargs)
except(KeyError, Content.DoesNotExist):
return None
и затем включение его в класс модели содержимого
class Content(model.Model):
...
objects = ContentManager()
Таким образом, это может быть легко рассмотрено в представлениях, т.е.
post = Content.objects.get_nicely(pk = 1)
if post:
# Do something
else:
# This post doesn't exist