This repository has been archived on 2025-02-01. You can view files and clone it, but cannot push or open issues or pull requests.
django-stock/wine/models.py

67 lines
2.1 KiB
Python

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