from django.db import models class Unit(models.Model): class Meta: ordering = ('name',) name = models.CharField(max_length=100) abbreviation = models.CharField(max_length=10, blank=True, null=True) grams = models.DecimalField(max_digits=10, decimal_places=10, blank=True, null=True, help_text="Conversion from this unit to grams (dry measure)") liters = models.DecimalField(max_digits=10, decimal_places=10, blank=True, null=True, help_text="Conversion from this unit to liters (liquid measure)") def __unicode__(self): return "{0} ({1})".format(self.name, self.abbreviation) class Recipe(models.Model): class Meta: ordering = ('title',) title = models.CharField(max_length=100) slug = models.SlugField(max_length=150) description = models.TextField(blank=True, null=True) servings = models.IntegerField(blank=True, null=True) instructions = models.TextField() oven_temp = models.IntegerField(blank=True, null=True) cook_time = models.IntegerField(blank=True, null=True, help_text="In minutes") prep_time = models.IntegerField(blank=True, null=True, help_text="In minutes") def __unicode__(self): return self.title class Ingredient(models.Model): class Meta: ordering = ('name',) name = models.CharField(max_length=100, unique=True) def __unicode__(self): return self.name class RecipeIngredient(models.Model): ingredient = models.ForeignKey(Ingredient) units = models.ForeignKey(Unit) quantity = models.FloatField() recipe = models.ForeignKey(Recipe) def __unicode__(self): return "{0} in {1}".format(self.ingredient.name, self.recipe.title)