Commits

Anonymous committed 48032d9

Added django.db.models.permalink decorator, which decorates a function that returns a viewname, viewargs and viewkwargs. The decorator returns the result of a reverse URL lookup on those parameters. Documentation is forthcoming.

  • Participants
  • Parent commits b0f00bf

Comments (0)

Files changed (1)

File django/db/models/__init__.py

 # Admin stages.
 ADD, CHANGE, BOTH = 1, 2, 3
 
+# Decorator. Takes a function that returns a tuple in this format:
+#     (viewname, viewargs, viewkwargs)
+# Returns a function that calls urlresolvers.reverse() on that data, to return
+# the URL for those parameters.
+def permalink(func):
+    from django.core.urlresolvers import reverse
+    def inner(*args, **kwargs):
+        bits = func(*args, **kwargs)
+        viewname = bits[0]
+        return reverse(bits[0], None, *bits[1:2])
+    return inner
+
 class LazyDate(object):
     """
     Use in limit_choices_to to compare the field to dates calculated at run time