Why do you have this dispatcher, rather than simply mapping the view functions to their correct URLs in the `urls.py` file? That's what `urls.py` is for. If someone tries to execute an action that you haven't allowed, they'll simply get an HTTP 201 status, which is incorrect and misleading. They should get an HTTP 404 status. In addition, this allows other view functions to construct bad URLs using Django's `reverse` function, which is not what we want.