#5990: permalink() works a little different from {% url %}
----------------------------------+-----------------------------------------
Reporter:  [EMAIL PROTECTED]  |       Owner:  nobody        
  Status:  new                    |   Component:  Uncategorized 
 Version:  SVN                    |    Keywords:  permalink  url
   Stage:  Unreviewed             |   Has_patch:  0             
----------------------------------+-----------------------------------------
 I'v wasted one whole night with this problem, and I got the "bug", just
 here:

 {{{
 def permalink(func):
     """
     Decorator that calls urlresolvers.reverse() to return a URL using
     parameters returned by the decorated function "func".

     "func" should be a function that returns a tuple in one of the
     following formats:
         (viewname, viewargs)
         (viewname, viewargs, viewkwargs)
     """
     from django.core.urlresolvers import reverse
     def inner(*args, **kwargs):
         bits = func(*args, **kwargs)
         return reverse(bits[0], None, *bits[1:3])
     return inner
 }}}

 and

 {{{
 class URLNode(Node):
     def __init__(self, view_name, args, kwargs):
         self.view_name = view_name
         self.args = args
         self.kwargs = kwargs

     def render(self, context):
         from django.core.urlresolvers import reverse, NoReverseMatch
         args = [arg.resolve(context) for arg in self.args]
         kwargs = dict([(smart_str(k,'ascii'), v.resolve(context))
                        for k, v in self.kwargs.items()])
         try:
             return reverse(self.view_name, args=args, kwargs=kwargs)
         except NoReverseMatch:
             try:
                 project_name = settings.SETTINGS_MODULE.split('.')[0]
                 return reverse(project_name + '.' + self.view_name,
                                args=args, kwargs=kwargs)
             except NoReverseMatch:
                 return ''
 }}}

 The implement of {% url %} is more convenient to use, and I hope
 permalink() would be as convenient as {% url %}.

 What's your opinion?

-- 
Ticket URL: <http://code.djangoproject.com/ticket/5990>
Django Code <http://code.djangoproject.com/>
The web framework for perfectionists with deadlines
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"Django updates" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/django-updates?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to