diff --git a/mongoengine/base.py b/mongoengine/base.py index 9f8c1e7b..42db460f 100644 --- a/mongoengine/base.py +++ b/mongoengine/base.py @@ -1,5 +1,6 @@ from queryset import QuerySet, QuerySetManager from queryset import DoesNotExist, MultipleObjectsReturned +from queryset import DO_NOTHING import sys import pymongo @@ -190,7 +191,7 @@ class DocumentMetaclass(type): new_class = super_new(cls, name, bases, attrs) for field in new_class._fields.values(): field.owner_document = new_class - if hasattr(field, 'delete_rule') and field.delete_rule: + if hasattr(field, 'delete_rule') and field.delete_rule > DO_NOTHING: field.document_type.register_delete_rule(new_class, field.name, field.delete_rule) diff --git a/mongoengine/document.py b/mongoengine/document.py index 504e14eb..e64092e8 100644 --- a/mongoengine/document.py +++ b/mongoengine/document.py @@ -1,6 +1,6 @@ from base import (DocumentMetaclass, TopLevelDocumentMetaclass, BaseDocument, ValidationError) -from queryset import OperationError, DO_NOTHING +from queryset import OperationError from connection import _get_db import pymongo @@ -105,9 +105,6 @@ class Document(BaseDocument): """This method registers the delete rules to apply when removing this object. """ - if rule == DO_NOTHING: - return - cls._meta['delete_rules'][(document_cls, field_name)] = rule