From deb8d339d6a5cbf396464766e552cbf8c4748795 Mon Sep 17 00:00:00 2001 From: Benjamin Date: Thu, 2 Mar 2023 22:01:25 +0100 Subject: [PATCH] fixup! Add forms for adding recipes and versions implement edit version with bug where editing and saving yields existing slug error --- recipes/forms.py | 4 +-- recipes/templates/edit-version.html | 40 +++++++++++++++++++++++ recipes/templates/version.html | 1 + recipes/urls.py | 1 + recipes/views.py | 49 +++++++++++++++++++++++------ 5 files changed, 83 insertions(+), 12 deletions(-) create mode 100644 recipes/templates/edit-version.html diff --git a/recipes/forms.py b/recipes/forms.py index 24aa9be..0aa8b64 100644 --- a/recipes/forms.py +++ b/recipes/forms.py @@ -1,4 +1,4 @@ -from django.forms import ModelForm, ValidationError, formset_factory, BooleanField +from django.forms import ModelForm, ValidationError, modelformset_factory, BooleanField from .models import Recipe, Version, Ingredient class VersionForm(ModelForm): @@ -20,4 +20,4 @@ class IngredientForm(ModelForm): model = Ingredient fields = ['text'] -IngredientFormSet = formset_factory(IngredientForm, extra=1) +IngredientFormSet = modelformset_factory(Ingredient, fields=('text',), extra=1) diff --git a/recipes/templates/edit-version.html b/recipes/templates/edit-version.html new file mode 100644 index 0000000..7c36b62 --- /dev/null +++ b/recipes/templates/edit-version.html @@ -0,0 +1,40 @@ +{% extends "base_main.html" %} +{% block title %}{{ recipe.title }}{% endblock %} +{% block main %} +
+ {%csrf_token %} + + {{ version_form.as_table }} +
+ {{ ingredients_formset.management_form }} + {% for ingredient_form in ingredients_formset %} + {{ ingredient_form.as_div }} + {% endfor %} + + +
+ + + +{% endblock %} diff --git a/recipes/templates/version.html b/recipes/templates/version.html index dbf44b1..ab63d1f 100644 --- a/recipes/templates/version.html +++ b/recipes/templates/version.html @@ -7,6 +7,7 @@ {% endif %} {% if perms.recipes.add_recipe %}

Add version

+

Edit Version

{% endif %}