From 48bdcbbd188a69ef36913be31c0ed817c91a7239 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Sat, 11 Mar 2023 19:16:06 +0100 Subject: [PATCH] Add models --- recipes/models.py | 33 ++++++++++++++++++++++++++++++++- 1 file changed, 32 insertions(+), 1 deletion(-) diff --git a/recipes/models.py b/recipes/models.py index 71a8362..80a66ad 100644 --- a/recipes/models.py +++ b/recipes/models.py @@ -1,3 +1,34 @@ from django.db import models +from django.contrib.auth.models import User +from django.urls import reverse -# Create your models here. +class Recipe(models.Model): + title = models.CharField(max_length=100, null=False, blank=False) + slug = models.SlugField(unique=True) + + def __str__(self) -> str: + return self.title + + def get_absolute_url(self): + return reverse('recipe', kwargs={'slug': self.slug}) + +class Version(models.Model): + label = models.CharField(max_length=20, default='Original') + slug = models.SlugField(max_length=20, default='original') + body = models.TextField(null=True, blank=True) + user = models.ForeignKey(User, on_delete=models.PROTECT, null=False, blank=False) + author = models.CharField(max_length=30, blank=True) + recipe = models.ForeignKey(Recipe, on_delete=models.PROTECT, null=False, blank=False, related_name='versions') + + def __str__(self) -> str: + return self.recipe.title + ' - ' + self.label + + def get_absolute_url(self): + return reverse('version', kwargs={'slug_recipe': self.recipe.slug, 'slug_version': self.slug}) + +class Ingredient(models.Model): + text = models.CharField(max_length=50, null=False, blank=False) + version = models.ForeignKey(Version, on_delete=models.CASCADE, null=False, blank=False, related_name='ingredients') + + def __str__(self) -> str: + return self.text + ' for ' + str(self.version)