diff --git a/django/contrib/admin/templatetags/admin_modify.py b/django/contrib/admin/templatetags/admin_modify.py index 2f3cb08aa3..d607594e06 100644 --- a/django/contrib/admin/templatetags/admin_modify.py +++ b/django/contrib/admin/templatetags/admin_modify.py @@ -5,7 +5,7 @@ from django.utils.functional import curry from django.contrib.admin.views.main import AdminBoundField from django.db.models.fields import BoundField, Field from django.db.models.related import BoundRelatedObject -from django.db.models.fields import TABULAR, STACKED +from django.db.models import TABULAR, STACKED from django.db import models from django.conf.settings import ADMIN_MEDIA_PREFIX import re diff --git a/django/contrib/admin/views/main.py b/django/contrib/admin/views/main.py index 319df83354..6ac5d7d14f 100644 --- a/django/contrib/admin/views/main.py +++ b/django/contrib/admin/views/main.py @@ -472,11 +472,13 @@ def log_add_message(user, opts,manipulator,new_object): pk_value = getattr(new_object, opts.pk.attname) LogEntry.objects.log_action(user.id, opts.get_content_type_id(), pk_value, str(new_object), ADDITION) -def add_stage(request, app_label, module_name, show_delete=False, form_url='', post_url='../', post_url_continue='../%s/', object_id_override=None): - mod, opts = _get_mod_opts(app_label, module_name) +def add_stage(request, path, show_delete=False, form_url='', post_url='../change/', post_url_continue='../%s/', object_id_override=None): + model, app_label = get_model_and_app(path) + opts = model._meta + if not request.user.has_perm(app_label + '.' + opts.get_add_permission()): raise PermissionDenied - manipulator = mod.AddManipulator() + manipulator = model.AddManipulator() if request.POST: new_data = request.POST.copy() if opts.has_field_type(models.FileField): @@ -525,7 +527,7 @@ def add_stage(request, app_label, module_name, show_delete=False, form_url='', p if object_id_override is not None: c['object_id'] = object_id_override - return render_change_form(opts, manipulator, app_label, c, add=True) + return render_change_form(model, manipulator, app_label, c, add=True) add_stage = staff_member_required(add_stage) def log_change_message(user, opts,manipulator,new_object): @@ -544,7 +546,7 @@ def log_change_message(user, opts,manipulator,new_object): LogEntry.objects.log_action(user.id, opts.get_content_type_id(), pk_value, str(new_object), CHANGE, change_message) def change_stage(request, path, object_id): - print "change_stage", path, object_id + model, app_label = get_model_and_app(path) opts = model._meta #mod, opts = _get_mod_opts(app_label, module_name) diff --git a/django/db/models/__init__.py b/django/db/models/__init__.py index fe4e510472..71366f4949 100644 --- a/django/db/models/__init__.py +++ b/django/db/models/__init__.py @@ -10,11 +10,14 @@ from django.db.models.loading import get_installed_models, get_installed_model_m from django.db.models.query import Q from django.db.models.manager import Manager from django.db.models.base import Model + from django.db.models.fields import * +from django.db.models.fields.related import * from django.core.exceptions import ObjectDoesNotExist from django.db.models.exceptions import FieldDoesNotExist, BadKeywordArguments + # Admin stages. ADD, CHANGE, BOTH = 1, 2, 3 diff --git a/django/db/models/base.py b/django/db/models/base.py index 5b842048da..c346db2eaa 100644 --- a/django/db/models/base.py +++ b/django/db/models/base.py @@ -1,6 +1,6 @@ from django.db.models.manipulators import ManipulatorDescriptor, ModelAddManipulator, ModelChangeManipulator from django.db.models.fields import Field, DateField, FileField, ImageField, AutoField -from django.db.models.fields import OneToOne, ManyToOne, ManyToMany, RECURSIVE_RELATIONSHIP_CONSTANT +from django.db.models.fields.related import OneToOne, ManyToOne, ManyToMany, RECURSIVE_RELATIONSHIP_CONSTANT from django.db.models.related import RelatedObject from django.db.models.manager import Manager, ManagerDescriptor from django.db.models.query import orderlist2sql diff --git a/django/db/models/fields/__init__.py b/django/db/models/fields/__init__.py index cbcb385764..fd1c77974e 100644 --- a/django/db/models/fields/__init__.py +++ b/django/db/models/fields/__init__.py @@ -16,10 +16,6 @@ HORIZONTAL, VERTICAL = 1, 2 BLANK_CHOICE_DASH = [("", "---------")] BLANK_CHOICE_NONE = [("", "None")] -# Values for Relation.edit_inline. -TABULAR, STACKED = 1, 2 - -RECURSIVE_RELATIONSHIP_CONSTANT = 'self' # prepares a value for use in a LIKE query prep_for_like_query = lambda x: str(x).replace("%", "\%").replace("_", "\_") @@ -27,15 +23,7 @@ prep_for_like_query = lambda x: str(x).replace("%", "\%").replace("_", "\_") # returns the