Thank you for your answer.

yes, that’ is not big problem in coding this feature locally or in django core. 
i just wanted to show interesting feature for django users. This feature can 
help new users with urls patterning and make existing code more readable.

Yes i will make component for django with supporting this feature and will try 
to publish it anywhere available to community. Maybe people will like it :)

For me this feature looks very usable.

Sorry for my english. Not native language.

-- 
Alexandr Shurigin

From: Berger Shai [email protected]
Reply: [email protected] [email protected]
Date: 28 мая 2014 г. at 23:53:52
To: [email protected] [email protected]
Subject:  Re: Make url patterns group kwargs more simple  

Hi Alexendr,  

On Wednesday 28 May 2014 18:54:05 Alexandr Shurigin wrote:  
> Hi all.  
>  
> What do you think about adding some extra default and more simpler syntax  
> for url patterns?  
>  
[looking for a way to re-write...]  
>  
> url(r'^(?P<slug_genre>[^/]+)/(?P<slug>[^/]+)/news/(?P<slug_item>[^/]+)$',...  
>  
[...as...]  
>  
>  
> url(r'^:slug_genre/:slug/news/:slug_item$', ,,,  
>  
> This will make urls very short, fast-readable and writable.  
>  
I agree -- but there are two points:  

1) The kind of expressions you'd want to use is probably very project-specific; 
 

2) Something very close is easy to achieve, without any change to Django. For  
example, for the case you gave above, add this near the top of your urls.py:  

import re  
def t(tag_url):  
"""  
Take a URL pattern with parts marked as :tag, and return  
the appropriate Django url-pattern  
"""  
tag = re.compile(r':([\w]+)')  
pat, _ = tag.subn(r'(?P<\1>[^/]+)', tag_url)  
return pat  

and now, you can write your urls as  

url(t(r'^:slug_genre/:slug/news/:slug_item$'), ,,,  

or even add further:  

def turl(pat, *args, **kw): return url(t(pat), *args, **kw)  

and write urls as  

turl(r'^:slug_genre/:slug/news/:slug_item$', ,,,  

Thus, I'm not sure anything needs to be changed in Django to support this.  

You can, of course, make some generalization of this and offer it to the  
community -- if it becomes very popular, it then may be a good candidate for  
inclusion in Django. Just to be clear, I'm *not* saying that it won't be --  
just that, before adding something like this to Django, we'd want to see how  
it gets used, so the feature we finally implement is useful for many people.  

HTH,  
Shai.  

--  
You received this message because you are subscribed to the Google Groups 
"Django developers" 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/201405281953.35201.shai%40platonix.com.
  
For more options, visit https://groups.google.com/d/optout.  

-- 
You received this message because you are subscribed to the Google Groups 
"Django developers" 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/etPan.53861747.7644a45c.406%40MacBook-Pro-dude.local.
For more options, visit https://groups.google.com/d/optout.

Reply via email to