mirror of
				https://github.com/django/django.git
				synced 2025-10-31 01:25:32 +00:00 
			
		
		
		
	magic-removal: slight event cleanup
git-svn-id: http://code.djangoproject.com/svn/django/branches/magic-removal@1721 bcc190cf-cafb-0310-a4f2-bffc1f526a37
This commit is contained in:
		| @@ -16,7 +16,7 @@ from django.db.models.fields.related import * | ||||
|  | ||||
| from django.core.exceptions import ObjectDoesNotExist, ImproperlyConfigured | ||||
| from django.db.models.exceptions import FieldDoesNotExist, BadKeywordArguments | ||||
| from django.db.models.signals import Signals | ||||
| from django.db.models import signals | ||||
|  | ||||
|  | ||||
| # Admin stages. | ||||
|   | ||||
| @@ -1,12 +1,13 @@ | ||||
| from django.db.models.manipulators import ModelAddManipulator, ModelChangeManipulator | ||||
| import django.db.models.manipulators | ||||
| import django.db.models.manager | ||||
|  | ||||
| from django.db.models.fields import  AutoField | ||||
| from django.db.models.fields.related import OneToOne, ManyToOne | ||||
| from django.db.models.related import RelatedObject | ||||
| from django.db.models.manager import Manager | ||||
| from django.db.models.query import orderlist2sql | ||||
| from django.db.models.options import Options | ||||
| from django.db import connection, backend | ||||
| from django.db.models.signals import Signals | ||||
| from django.db.models import signals | ||||
|  | ||||
| from django.dispatch import dispatcher | ||||
| from django.core.exceptions import ObjectDoesNotExist | ||||
| @@ -133,7 +134,7 @@ class Model(object): | ||||
|         return not self.__eq__(other) | ||||
|  | ||||
|     def __init__(self, *args, **kwargs): | ||||
|         dispatcher.send( signal = Signals.pre_init, sender = self.__class__, args=args, kwargs=kwargs) | ||||
|         dispatcher.send( signal = signals.pre_init, sender = self.__class__, args=args, kwargs=kwargs) | ||||
|         if kwargs: | ||||
|             for f in self._meta.fields: | ||||
|                 if isinstance(f.rel, ManyToOne): | ||||
| @@ -164,26 +165,15 @@ class Model(object): | ||||
|                 raise TypeError, "'%s' is an invalid keyword argument for this function" % kwargs.keys()[0] | ||||
|         for i, arg in enumerate(args): | ||||
|             setattr(self, self._meta.fields[i].attname, arg) | ||||
|         dispatcher.send( signal = Signals.post_init, sender = self.__class__, instance=self) | ||||
|         dispatcher.send( signal = signals.post_init, sender = self.__class__, instance=self) | ||||
|  | ||||
|     def _prepare(cls): | ||||
|         if not hasattr(cls, '_default_manager'): | ||||
|             # Create the default manager, if needed. | ||||
|             if hasattr(cls, 'objects'): | ||||
|                 raise ValueError, "Model %s must specify a custom Manager, because it has a field named 'objects'" % name | ||||
|             cls.add_to_class('objects',  Manager()) | ||||
|          | ||||
|         cls.add_to_class(  'AddManipulator', ModelAddManipulator) | ||||
|         cls.add_to_class(  'ChangeManipulator', ModelChangeManipulator) | ||||
|  | ||||
|         # Creates some methods once self._meta has been populated. | ||||
|  | ||||
|         if cls._meta.order_with_respect_to: | ||||
|             cls.get_next_in_order = curry(cls._get_next_or_previous_in_order, is_next=True) | ||||
|             cls.get_previous_in_order = curry(cls._get_next_or_previous_in_order, is_next=False) | ||||
|  | ||||
|         dispatcher.send( signal = Signals.class_prepared, sender = cls) | ||||
|  | ||||
|         dispatcher.send( signal = signals.class_prepared, sender = cls) | ||||
|         #RelatedField.do_pending_lookups(cls) | ||||
|  | ||||
|     _prepare = classmethod(_prepare) | ||||
| @@ -192,7 +182,7 @@ class Model(object): | ||||
|         # Run any pre-save hooks. | ||||
|         if hasattr(self, '_pre_save'): | ||||
|             self._pre_save() | ||||
|         dispatcher.send( signal=Signals.pre_save, sender = self.__class__, instance = self ) | ||||
|         dispatcher.send( signal=signals.pre_save, sender = self.__class__, instance = self ) | ||||
|  | ||||
|         non_pks = [f for f in self._meta.fields if not f.primary_key] | ||||
|         cursor = connection.cursor() | ||||
| @@ -237,7 +227,7 @@ class Model(object): | ||||
|         connection.commit() | ||||
|  | ||||
|         # Run any post-save hooks. | ||||
|         dispatcher.send(signal=Signals.pre_save, sender = self.__class__, instance = self ) | ||||
|         dispatcher.send(signal=signals.pre_save, sender = self.__class__, instance = self ) | ||||
|  | ||||
|         if hasattr(self, '_post_save'): | ||||
|             self._post_save() | ||||
| @@ -292,7 +282,7 @@ class Model(object): | ||||
|             if hasattr(instance, '_pre_delete'): | ||||
|                 instance._pre_delete() | ||||
|  | ||||
|             dispatcher.send(signal=Signals.pre_delete, sender = cls, instance = instance ) | ||||
|             dispatcher.send(signal=signals.pre_delete, sender = cls, instance = instance ) | ||||
|  | ||||
|             for related in cls._meta.get_all_related_many_to_many_objects(): | ||||
|                 cursor.execute("DELETE FROM %s WHERE %s=%%s" % \ | ||||
| @@ -322,7 +312,7 @@ class Model(object): | ||||
|  | ||||
|             setattr(self, cls._meta.pk.attname, None) | ||||
|  | ||||
|             dispatcher.send(signal=Signals.post_delete, sender = cls, instance = instance ) | ||||
|             dispatcher.send(signal=signals.post_delete, sender = cls, instance = instance ) | ||||
|  | ||||
|             if hasattr(instance, '_post_delete'): | ||||
|                 instance._post_delete() | ||||
|   | ||||
| @@ -1,4 +1,4 @@ | ||||
| from django.db.models.signals import Signals | ||||
| from django.db.models import signals | ||||
| from django.dispatch import dispatcher | ||||
| from django.conf import settings | ||||
| from django.core import formfields, validators | ||||
| @@ -507,7 +507,7 @@ class FileField(Field): | ||||
|         setattr(cls, 'save_%s_file' % self.name, curry(cls._save_FIELD_file, field=self)) | ||||
|         dispatcher.connect( | ||||
|             self.delete_file, | ||||
|             signal = Signals.post_delete, | ||||
|             signal = signals.post_delete, | ||||
|             sender = cls | ||||
|         ) | ||||
|  | ||||
|   | ||||
| @@ -3,7 +3,7 @@ from django.db.models.related import RelatedObject | ||||
| from django.utils.translation import gettext_lazy, string_concat | ||||
| from django.utils.functional import curry | ||||
| from django.core import formfields | ||||
| from django.db.models.signals import Signals | ||||
| from django.db.models import signals | ||||
|  | ||||
| from django.dispatch import dispatcher | ||||
|  | ||||
| @@ -18,7 +18,7 @@ class RelatedField(object): | ||||
|      | ||||
|     dispatcher.connect( | ||||
|         lambda sender: RelatedField.do_pending_lookups(sender) , | ||||
|         signal = Signals.class_prepared, | ||||
|         signal = signals.class_prepared, | ||||
|         weak = False) | ||||
|      | ||||
|      | ||||
| @@ -320,13 +320,13 @@ class ManyToManyFieldNew(RelatedField): | ||||
|         # We need to wait until the class we were in was fully defined | ||||
|         dispatcher.connect( | ||||
|             self.from_prepared, | ||||
|             signal = Signals.class_prepared, | ||||
|             signal = signals.class_prepared, | ||||
|             sender = self.from_ | ||||
|         ) | ||||
|          | ||||
|     def from_prepared(self): | ||||
|         from django.db.models.base import Model | ||||
|                  | ||||
|          | ||||
|         class M2M(Model): | ||||
|             __module__ = self.from_.__module__ | ||||
|          | ||||
| @@ -340,6 +340,7 @@ class ManyToManyFieldNew(RelatedField): | ||||
|         M2M.__name__ = "M2M_%s_%s_%s" % (self.name,self.from_.__name__, self.to.__name__) | ||||
|  | ||||
|  | ||||
|  | ||||
| class ManyToOne: | ||||
|     def __init__(self, to, field_name, num_in_admin=3, min_num_in_admin=None, | ||||
|         max_num_in_admin=None, num_extra_on_change=1, edit_inline=False, | ||||
|   | ||||
| @@ -3,11 +3,26 @@ from django.utils.functional import curry | ||||
| from django.db import backend, connection | ||||
| from django.db.models.query import Q, parse_lookup, fill_table_cache, get_cached_row | ||||
| from django.db.models.query import handle_legacy_orderlist, orderlist2sql, orderfield2column | ||||
| from django.dispatch import dispatcher | ||||
| from django.db.models import signals | ||||
|  | ||||
| # Size of each "chunk" for get_iterator calls. | ||||
| # Larger values are slightly faster at the expense of more storage space. | ||||
| GET_ITERATOR_CHUNK_SIZE = 100 | ||||
|  | ||||
| def ensure_default_manager(sender): | ||||
|     cls = sender | ||||
|     if not hasattr(cls, '_default_manager'): | ||||
|         # Create the default manager, if needed. | ||||
|         if hasattr(cls, 'objects'): | ||||
|             raise ValueError, "Model %s must specify a custom Manager, because it has a field named 'objects'" % name | ||||
|         cls.add_to_class('objects',  Manager()) | ||||
|  | ||||
| dispatcher.connect( | ||||
|     ensure_default_manager, | ||||
|     signal=signals.class_prepared | ||||
| ) | ||||
|  | ||||
| class Manager(object): | ||||
|         # Tracks each time a Manager instance is created. Used to retain order. | ||||
|     creation_counter = 0 | ||||
|   | ||||
| @@ -1,6 +1,18 @@ | ||||
| from django.core.exceptions import ObjectDoesNotExist | ||||
| from django.core.formfields import Manipulator | ||||
| from django.db.models.fields import FileField, AutoField | ||||
| from django.dispatch import dispatcher | ||||
| from django.db.models import signals | ||||
|  | ||||
| def add_manipulators(sender): | ||||
|     cls = sender | ||||
|     cls.add_to_class(  'AddManipulator', ModelAddManipulator) | ||||
|     cls.add_to_class(  'ChangeManipulator', ModelChangeManipulator) | ||||
|  | ||||
| dispatcher.connect( | ||||
|     add_manipulators, | ||||
|     signal=signals.class_prepared | ||||
| ) | ||||
|  | ||||
| class ManipulatorDescriptor(object): | ||||
|     class empty: | ||||
|   | ||||
| @@ -1,11 +1,10 @@ | ||||
| class Signals(object): | ||||
|     class_prepared = object() | ||||
| class_prepared = object() | ||||
|  | ||||
|     pre_init= object() | ||||
|     post_init = object() | ||||
| pre_init= object() | ||||
| post_init = object() | ||||
|  | ||||
|     pre_save = object() | ||||
|     post_save = object() | ||||
| pre_save = object() | ||||
| post_save = object() | ||||
|  | ||||
|     pre_delete = object() | ||||
|     post_delete = object() | ||||
| pre_delete = object() | ||||
| post_delete = object() | ||||
|   | ||||
		Reference in New Issue
	
	Block a user