﻿id	summary	reporter	owner	description	type	status	component	version	severity	resolution	keywords	cc	stage	has_patch	needs_docs	needs_tests	needs_better_patch	easy	ui_ux
5990	permalink() works a little different from {% url %}	johnfractal@…	nobody	"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?"		closed	Core (Other)	dev		wontfix	permalink  url		Design decision needed	0	0	0	1	0	0
