from django.db import models class Classification(models.Model): name = models.CharField(max_length=200) def __str__(self): return self.name class Variety(models.Model): name = models.CharField(max_length=200) classification = models.ForeignKey(Classification, on_delete=models.PROTECT) def __str__(self): return self.name class Winery(models.Model): name = models.CharField(max_length=200) website = models.URLField(max_length=200, blank=True, null=True) def __str__(self): return self.name class Storage(models.Model): name = models.CharField(max_length=200) def __str__(self): return self.name class Wine(models.Model): name = models.CharField(max_length=200) variety = models.ManyToManyField(Variety) winery = models.ForeignKey(Winery, on_delete=models.PROTECT) storage = models.ForeignKey(Storage, on_delete=models.PROTECT) comment = models.TextField(null=True, blank=True) def __str__(self): return self.winery.name + " - " + self.name class Millesime(models.Model): BOTTLE_SIZES = [ ('piccolo', 'Piccolo (0,20 Litres)'), ('quart', 'Quart (0,25 Litres)'), ('demi', 'Demi (0,375 Litres)'), ('medium', 'Médium (0,50 Litres)'), ('bouteille', 'Bouteille (0,75 Litres)'), ('magnum', 'Magnum (1,5 Litres)'), ('jeroboam', 'Jéroboam (3 Litres)'), ('rehoboam', 'Réhoboam (4,5 Litres)'), ('mathusalem', 'Mathusalem (6 Litres)'), ('salmanazar', 'Salmanazar (9 Litres)'), ('balthazar', 'Balthazar (12 Litres)'), ('nabuchodonosor', 'Nabuchodonosor (15 Litres)'), ('melchior', 'Melchior (18 Litres)'), ('souverain', 'Souverain (26,25 Litres)'), ('primat', 'Primat (27 Litres)'), ('midas', 'Midas (30 Litres)'), ] year = models.PositiveIntegerField() wine = models.ForeignKey(Wine, on_delete=models.CASCADE) size = models.CharField(max_length=20, choices=BOTTLE_SIZES, default='bouteille') available = models.SmallIntegerField() def __str__(self): return "%i" % self.year