On 27-8-2012 4:14, Matthew Meyer wrote: > So the question: Is there a way I can keep the flexible tag regex redirect > behavior but then "break" from it once I reach a product page? One > important thing to note is that I want to keep the product page within the > built up url scheme like: mens/shirts/buttonups/shirt-product/
The first thing to note is that you need to get "redirect" and "break out" out of your vocabulary. While Django's urlconfs look and walk like rewrite engines, they are not rewrite engines. The primary difference is that matches are handled in order and the first match wins, so there is no "break out" principle. Since a slug and a tag in your matches consist of identical character classes there is no way to differentiate between one or the other. The easy solution and one that is in line with the semantics of URLs is to drop the trailing slash for the product. "Back in the day" trailing slashes meant "directory listings" and no trailing slash referred to "document requests" and this applies to your scheme also. So your product url becomes: url(r'^(?P<tag>.+)/(?P<slug>[-\w]+)$', 'product_page'), -- Melvyn Sopacua -- You received this message because you are subscribed to the Google Groups "Django users" group. To post to this group, send email to django-users@googlegroups.com. To unsubscribe from this group, send email to django-users+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/django-users?hl=en.