app/django/db/models/__init__.py
changeset 54 03e267d67478
child 323 ff1a9aa48cfd
equal deleted inserted replaced
53:57b4279d8c4e 54:03e267d67478
       
     1 from django.conf import settings
       
     2 from django.core.exceptions import ObjectDoesNotExist, ImproperlyConfigured
       
     3 from django.core import validators
       
     4 from django.db import connection
       
     5 from django.db.models.loading import get_apps, get_app, get_models, get_model, register_models
       
     6 from django.db.models.query import Q
       
     7 from django.db.models.manager import Manager
       
     8 from django.db.models.base import Model, AdminOptions
       
     9 from django.db.models.fields import *
       
    10 from django.db.models.fields.subclassing import SubfieldBase
       
    11 from django.db.models.fields.related import ForeignKey, OneToOneField, ManyToManyField, ManyToOneRel, ManyToManyRel, OneToOneRel, TABULAR, STACKED
       
    12 from django.db.models import signals
       
    13 from django.utils.functional import curry
       
    14 from django.utils.text import capfirst
       
    15 
       
    16 # Admin stages.
       
    17 ADD, CHANGE, BOTH = 1, 2, 3
       
    18 
       
    19 def permalink(func):
       
    20     """
       
    21     Decorator that calls urlresolvers.reverse() to return a URL using
       
    22     parameters returned by the decorated function "func".
       
    23 
       
    24     "func" should be a function that returns a tuple in one of the
       
    25     following formats:
       
    26         (viewname, viewargs)
       
    27         (viewname, viewargs, viewkwargs)
       
    28     """
       
    29     from django.core.urlresolvers import reverse
       
    30     def inner(*args, **kwargs):
       
    31         bits = func(*args, **kwargs)
       
    32         return reverse(bits[0], None, *bits[1:3])
       
    33     return inner