This method registers the delete rules to apply when removing this object.
(cls, document_cls, field_name, rule)
| 838 | |
| 839 | @classmethod |
| 840 | def register_delete_rule(cls, document_cls, field_name, rule): |
| 841 | """This method registers the delete rules to apply when removing this |
| 842 | object. |
| 843 | """ |
| 844 | classes = [ |
| 845 | get_document(class_name) |
| 846 | for class_name in cls._subclasses |
| 847 | if class_name != cls.__name__ |
| 848 | ] + [cls] |
| 849 | documents = [ |
| 850 | get_document(class_name) |
| 851 | for class_name in document_cls._subclasses |
| 852 | if class_name != document_cls.__name__ |
| 853 | ] + [document_cls] |
| 854 | |
| 855 | for klass in classes: |
| 856 | for document_cls in documents: |
| 857 | delete_rules = klass._meta.get("delete_rules") or {} |
| 858 | delete_rules[(document_cls, field_name)] = rule |
| 859 | klass._meta["delete_rules"] = delete_rules |
| 860 | |
| 861 | @classmethod |
| 862 | def drop_collection(cls): |