diff --git a/apps/food/fixtures/initial.json b/apps/food/fixtures/initial.json index 43a0ffe1..2442b92f 100644 --- a/apps/food/fixtures/initial.json +++ b/apps/food/fixtures/initial.json @@ -52,7 +52,7 @@ "model": "food.allergen", "pk": 8, "fields": { - "name": "Céléri" + "name": "Céleri" } }, { diff --git a/apps/food/views.py b/apps/food/views.py index 96c6b89e..2fdd6ec6 100644 --- a/apps/food/views.py +++ b/apps/food/views.py @@ -8,7 +8,7 @@ from django_tables2.views import MultiTableMixin from django.db import transaction from django.db.models import Q from django.http import HttpResponseRedirect -from django.views.generic import DetailView, UpdateView +from django.views.generic import DetailView, UpdateView, CreateView from django.views.generic.list import ListView from django.urls import reverse_lazy from django.utils import timezone @@ -106,7 +106,7 @@ class FoodListView(ProtectQuerysetMixin, LoginRequiredMixin, MultiTableMixin, Li return context -class QRCodeCreateView(ProtectQuerysetMixin, ProtectedCreateView): +class QRCodeCreateView(ProtectQuerysetMixin, CreateView): """ A view to add qrcode """ @@ -385,7 +385,8 @@ class BasicFoodDetailView(FoodDetailView): return context def get(self, *args, **kwargs): - kwargs['stop_redirect'] = (Food.objects.get(pk=kwargs['pk']).polymorphic_ctype.model == 'basicfood') + if Food.objects.filter(pk=kwargs['pk']).count() == 1: + kwargs['stop_redirect'] = (Food.objects.get(pk=kwargs['pk']).polymorphic_ctype.model == 'basicfood') return super().get(*args, **kwargs) @@ -404,5 +405,6 @@ class TransformedFoodDetailView(FoodDetailView): return context def get(self, *args, **kwargs): - kwargs['stop_redirect'] = (Food.objects.get(pk=kwargs['pk']).polymorphic_ctype.model == 'transformedfood') + if Food.objects.filter(pk=kwargs['pk']).count() == 1: + kwargs['stop_redirect'] = (Food.objects.get(pk=kwargs['pk']).polymorphic_ctype.model == 'transformedfood') return super().get(*args, **kwargs)