models.py 1.2 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243
  1. from django.db import models
  2. from mptt.models import MPTTModel, TreeForeignKey
  3. class Category(MPTTModel):
  4. parent = TreeForeignKey("self", null=True, blank=True, related_name='children',
  5. db_index=True, verbose_name='catégorie parente', on_delete=models.CASCADE)
  6. name = models.CharField(max_length=64)
  7. class MPTTMeta:
  8. order_insertion_by = ['name']
  9. class Meta:
  10. verbose_name = 'Catégorie'
  11. def __str__(self):
  12. return self.name
  13. class Location(models.Model):
  14. name = models.CharField(max_length=64)
  15. class Meta:
  16. verbose_name = 'Emplacement'
  17. def __str__(self):
  18. return self.name
  19. class Equipment(models.Model):
  20. category = TreeForeignKey(Category, verbose_name='catégorie', on_delete=models.CASCADE)
  21. quantity = models.PositiveIntegerField(default=0, verbose_name='quantité')
  22. location = models.ForeignKey(Location, verbose_name='emplacement', on_delete=models.CASCADE)
  23. class Meta:
  24. verbose_name = 'Équipement'
  25. unique_together = (
  26. ('category', 'location',),
  27. )
  28. def __str__(self):
  29. return '%d %s à %s' % (self.quantity, self.category, self.location)