39 lines
1.2 KiB
Python
39 lines
1.2 KiB
Python
from django.db import models
|
|
from django.urls import reverse
|
|
|
|
|
|
class Ingredient(models.Model):
|
|
nom = models.CharField("Nom", max_length=200)
|
|
|
|
def __str__(self):
|
|
return self.nom
|
|
|
|
|
|
class Unite(models.Model):
|
|
nom = models.CharField("Unité", max_length=200)
|
|
|
|
def __str__(self):
|
|
return self.nom
|
|
|
|
|
|
class Recette(models.Model):
|
|
nom = models.CharField("Nom", max_length=200)
|
|
photo = models.ImageField("Photo", upload_to='photos', blank=True)
|
|
nb_pers = models.IntegerField(default=4)
|
|
prep = models.TextField("Préparation", blank=True)
|
|
source = models.CharField("Source", max_length=200, blank=True)
|
|
ingredients = models.ManyToManyField(Ingredient, through='Composition', blank=True)
|
|
|
|
def __str__(self):
|
|
return self.nom
|
|
|
|
def get_absolute_url(self):
|
|
return reverse('recette', args=[self.pk])
|
|
|
|
|
|
class Composition(models.Model):
|
|
recette = models.ForeignKey(Recette, on_delete=models.CASCADE)
|
|
ingredient = models.ForeignKey(Ingredient, on_delete=models.PROTECT)
|
|
quantite = models.DecimalField(max_digits=6, decimal_places=3, null=True, blank=True)
|
|
unite = models.ForeignKey(Unite, null=True, blank=True, on_delete=models.PROTECT)
|