models.py 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. """
  2. Models for testing various aspects of the djang.contrib.admindocs app
  3. """
  4. from django.db import models
  5. from django.utils.functional import cached_property
  6. class Company(models.Model):
  7. name = models.CharField(max_length=200)
  8. class Group(models.Model):
  9. name = models.CharField(max_length=200)
  10. class Family(models.Model):
  11. last_name = models.CharField(max_length=200)
  12. class Person(models.Model):
  13. """
  14. Stores information about a person, related to :model:`myapp.Company`.
  15. **Notes**
  16. Use ``save_changes()`` when saving this object.
  17. ``company``
  18. Field storing :model:`myapp.Company` where the person works.
  19. (DESCRIPTION)
  20. .. raw:: html
  21. :file: admin_docs/evilfile.txt
  22. .. include:: admin_docs/evilfile.txt
  23. """
  24. first_name = models.CharField(max_length=200, help_text="The person's first name")
  25. last_name = models.CharField(max_length=200, help_text="The person's last name")
  26. company = models.ForeignKey(Company, models.CASCADE, help_text="place of work")
  27. family = models.ForeignKey(Family, models.SET_NULL, related_name="+", null=True)
  28. groups = models.ManyToManyField(Group, help_text="has membership")
  29. def _get_full_name(self):
  30. return "%s %s" % (self.first_name, self.last_name)
  31. def rename_company(self, new_name):
  32. self.company.name = new_name
  33. self.company.save()
  34. return new_name
  35. def dummy_function(self, baz, rox, *some_args, **some_kwargs):
  36. return some_kwargs
  37. @property
  38. def a_property(self):
  39. return "a_property"
  40. @cached_property
  41. def a_cached_property(self):
  42. return "a_cached_property"
  43. def suffix_company_name(self, suffix="ltd"):
  44. return self.company.name + suffix
  45. def add_image(self):
  46. pass
  47. def delete_image(self):
  48. pass
  49. def save_changes(self):
  50. pass
  51. def set_status(self):
  52. pass
  53. def get_full_name(self):
  54. """
  55. Get the full name of the person
  56. """
  57. return self._get_full_name()
  58. def get_status_count(self):
  59. return 0
  60. def get_groups_list(self):
  61. return []