|
0
|
1 |
from django.conf import settings |
|
|
2 |
from django.core.exceptions import ObjectDoesNotExist, ImproperlyConfigured |
|
|
3 |
from django.db import connection |
|
|
4 |
from django.db.models.loading import get_apps, get_app, get_models, get_model, register_models |
|
|
5 |
from django.db.models.query import Q |
|
|
6 |
from django.db.models.expressions import F |
|
|
7 |
from django.db.models.manager import Manager |
|
|
8 |
from django.db.models.base import Model |
|
|
9 |
from django.db.models.aggregates import * |
|
|
10 |
from django.db.models.fields import * |
|
|
11 |
from django.db.models.fields.subclassing import SubfieldBase |
|
|
12 |
from django.db.models.fields.files import FileField, ImageField |
|
|
13 |
from django.db.models.fields.related import ForeignKey, OneToOneField, ManyToManyField, ManyToOneRel, ManyToManyRel, OneToOneRel |
|
|
14 |
from django.db.models import signals |
|
|
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 |