Exemple #1
0
def add_recipe(request):
    ImageFormSet=modelformset_factory(Image,form=ImageForm,max_num=5)
    if request.method=='POST':
        recipe_form=RecipeForm(request.POST)
        formset=ImageFormSet(request.POST,request.FILES,queryset=Image.objects.none())
        if recipe_form.is_valid() and formset.is_valid() :
            recipe=recipe_form.save(commit=False)
            recipe.user = request.user
            recipe.save()
            for form in formset.cleaned_data:
                image=form['image']
                Image.objects.create(image=image,recipe=recipe)
            return redirect(recipe.get_absolute_url())
    else:
        recipe_form=RecipeForm()
        formset=ImageFormSet(queryset=Image.objects.none())

    return render(request,'add-recipe.html',locals())
Exemple #2
0
def update_recipe(request,pk):
    recipe=get_object_or_404(Recipe,pk=pk)
    if request.user == recipe.user:
        ImageFormSet=modelformset_factory(Image,form=ImageForm,max_num=5)
        recipe_form=RecipeForm(request.POST or None,instance=recipe)
        formset=ImageFormSet(request.POST or None,request.FILES or None,queryset=Image.objects.filter(recipe=recipe))
        if recipe_form.is_valid() and formset.is_valid():
            recipe=recipe_form.save()
            for form in formset:
                image=form.save(commit=False)
                image.recipe=recipe
                image.save()
            return redirect(recipe.get_absolute_url())

        return render(request,'update-recipe.html',locals())
    else:
        return HttpResponse('<h1>403 Forbidden</h1>')
Exemple #3
0
    def test_invalid_duplicate_name(self):
        """
        Create recipe which will be occupying chosen name to trigger clean_recipe_name
        """

        User.objects.create_superuser('Necessary Evil', '*****@*****.**',
                                      'SomeP5WD-40')
        Recipe(recipe_name=self.default_data['recipe_name'],
               accepted=True,
               preparation_time=50,
               recipe_image='tree.JPG',
               directions='blablablab').save()
        form = RecipeForm(data=self.default_data,
                          files=self.files,
                          collect_ing=[])
        self.assertFalse(form.is_valid())
        self.assertIn(
            'This title has already been used. Please type another one.',
            dict(form.errors)['recipe_name'])
Exemple #4
0
 def test_valid_recipe_form(self):
     form = RecipeForm(data=self.default_data,
                       files=self.files,
                       collect_ing=[])
     self.assertTrue(form.is_valid())