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.

Reply via email to