From: hernani Date: Thu, 17 Jun 2010 15:27:23 +0000 (+0000) Subject: Makes hitting a question url using an id that is not a question raise a 404. X-Git-Tag: live~697 X-Git-Url: https://git.openstreetmap.org./osqa.git/commitdiff_plain/076007f066cf39f55b375900c2e7d14692182932 Makes hitting a question url using an id that is not a question raise a 404. git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@437 0cfe37f9-358a-4d5e-be75-b63607b5c754 --- diff --git a/forum/models/action.py b/forum/models/action.py index d6d0c64..c951a58 100644 --- a/forum/models/action.py +++ b/forum/models/action.py @@ -15,8 +15,13 @@ class ActionQuerySet(CachedQuerySet): else: return super(ActionQuerySet, self).obj_from_datadict(datadict) - def get(self, *args, **kwargs): - return super(ActionQuerySet, self).get(*args, **kwargs).leaf() + def get(self, *args, **kwargs): + action = super(ActionQuerySet, self).get(*args, **kwargs).leaf() + + if not isinstance(action, self.model): + raise self.model.DoesNotExist() + + return action class ActionManager(CachedManager): use_for_related_fields = True diff --git a/forum/models/node.py b/forum/models/node.py index 70d10b6..75b3933 100644 --- a/forum/models/node.py +++ b/forum/models/node.py @@ -95,7 +95,12 @@ class NodeQuerySet(CachedQuerySet): return super(NodeQuerySet, self).obj_from_datadict(datadict) def get(self, *args, **kwargs): - return super(NodeQuerySet, self).get(*args, **kwargs).leaf + node = super(NodeQuerySet, self).get(*args, **kwargs).leaf + + if not isinstance(node, self.model): + raise self.model.DoesNotExist() + + return node def filter_state(self, **kwargs): apply_bool = lambda q, b: b and q or ~q