La gestion des exceptions à différents endroits de vos vues pourrait être très lourde Que diriez-vous de définir un gestionnaire de modèles personnalisé, dans le fichier models.py, comme suit
class ContentManager(model.Manager):
def get_nicely(self, **kwargs):
try:
return self.get(kwargs)
except(KeyError, Content.DoesNotExist):
return None
puis de l'inclure dans la classe Modèle de contenu
class Content(model.Model):
...
objects = ContentManager()
De cette façon, il peut être facilement traité dans les vues, c'est-à-dire
post = Content.objects.get_nicely(pk = 1)
if post:
# Do something
else:
# This post doesn't exist