From d9b1837f668bdcbaef74e278cbaadd9b0951ca41 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Sun, 19 Feb 2023 14:23:04 +0100 Subject: [PATCH] fixup! Add forms for adding recipes and versions fix slug uniqueness testing --- recipes/forms.py | 5 ++++- recipes/views.py | 1 + 2 files changed, 5 insertions(+), 1 deletion(-) diff --git a/recipes/forms.py b/recipes/forms.py index 3b4c6d9..40afecc 100644 --- a/recipes/forms.py +++ b/recipes/forms.py @@ -2,13 +2,16 @@ from django.forms import ModelForm, BooleanField, ValidationError from .models import Recipe, Version, Ingredient class VersionForm(ModelForm): + recipe_id: int + class Meta: model = Version fields = ['label', 'slug', 'body'] def clean_slug(self): + recipe = Recipe.objects.get(id=self.recipe_id) slug = self.cleaned_data['slug'] - if Version.objects.filter(slug=slug).exists(): + if recipe.versions.filter(slug=slug).count() > 0: # type: ignore raise ValidationError('A recipe version with this slug already exists.') return slug diff --git a/recipes/views.py b/recipes/views.py index f153c09..51ac460 100644 --- a/recipes/views.py +++ b/recipes/views.py @@ -43,6 +43,7 @@ def add_version(request, slug_recipe): if request.method == 'POST': form = VersionForm(request.POST) + form.recipe_id = recipe.id # type: ignore if form.is_valid(): version = form.save(commit=False)