mptt.fields: 22 total statements, 0.0% covered

Generated: Wed 2013-03-13 10:33 CET

Source file: /media/Envs/Envs/filer-gallery/lib/python2.7/site-packages/mptt/fields.py

Stats: 0 executed, 19 missed, 3 excluded, 24 ignored

  1. """
  2. Model fields for working with trees.
  3. """
  4. __all__ = ('TreeForeignKey', 'TreeOneToOneField', 'TreeManyToManyField')
  5. from django.db import models
  6. from mptt.forms import TreeNodeChoiceField, TreeNodeMultipleChoiceField
  7. class TreeForeignKey(models.ForeignKey):
  8. """
  9. Extends the foreign key, but uses mptt's ``TreeNodeChoiceField`` as
  10. the default form field.
  11. This is useful if you are creating models that need automatically
  12. generated ModelForms to use the correct widgets.
  13. """
  14. def formfield(self, **kwargs):
  15. """
  16. Use MPTT's ``TreeNodeChoiceField``
  17. """
  18. kwargs.setdefault('form_class', TreeNodeChoiceField)
  19. return super(TreeForeignKey, self).formfield(**kwargs)
  20. class TreeOneToOneField(models.OneToOneField):
  21. def formfield(self, **kwargs):
  22. kwargs.setdefault('form_class', TreeNodeChoiceField)
  23. return super(TreeOneToOneField, self).formfield(**kwargs)
  24. class TreeManyToManyField(models.ManyToManyField):
  25. def formfield(self, **kwargs):
  26. kwargs.setdefault('form_class', TreeNodeMultipleChoiceField)
  27. return super(TreeManyToManyField, self).formfield(**kwargs)
  28. # South integration
  29. try:
  30. from south.modelsinspector import add_introspection_rules
  31. add_introspection_rules([], ["^mptt\.fields\.TreeForeignKey"])
  32. add_introspection_rules([], ["^mptt\.fields\.TreeOneToOneField"])
  33. add_introspection_rules([], ["^mptt\.fields\.TreeManyToManyField"])
  34. except ImportError:
  35. pass