Hey all, I'm working on a proposal to extend the URL dispatcher. Here, I'd like to provide a quick overview of the features I propose.
I'd like to: - Allow matching based on request attributes such as the subdomain or protocol, and business logic such as the existence of a database object. - Make middleware configurable for a subset of views. It should be easy to add, reorder or replace middleware at any level in the (currently recursive) matching algorithm. - Provide conventions for common patterns, such as an easy-to-configure URL router for all generic Model views. For generic views, this should be a one-liner. For custom views and other non-default options, this should still be relatively easy to configure compared to writing out all patterns. In the process, I'd like to formalize some classes used in the dispatcher. Currently, the RegexURLPattern and RegexURLResolver classes provide most of the functionality of the URL dispatcher. By abstracting these classes, and factoring out the loading mechanism and some other internals, I hope to provide an extensible dispatching framework for third-party apps. The full, yet incomplete proposal can be found at https://gist.github.com/knbk/325d415baa92094f1e93 if you want more details. It currently contains a slightly more in-depth discussion of the current dispatcher and the proposed features, and a start on the redesign of the dispatcher. I'm mostly looking for some feedback on the general direction of these features, though any feedback is welcome. I'm still working on it, so details might change based on new insights. Thanks, Marten -- You received this message because you are subscribed to the Google Groups "Django developers (Contributions to Django itself)" group. To unsubscribe from this group and stop receiving emails from it, send an email to [email protected]. To post to this group, send email to [email protected]. Visit this group at http://groups.google.com/group/django-developers. To view this discussion on the web visit https://groups.google.com/d/msgid/django-developers/1555e45b-8a98-4d36-bc7b-00c7136e782d%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
