From 4115e49e4b4ea69d7b95050e02c39e883086b17e Mon Sep 17 00:00:00 2001 From: quark Date: Sun, 27 Apr 2025 16:54:58 +0200 Subject: [PATCH] fix permission bug --- apps/food/fixtures/initial.json | 2 +- apps/food/views.py | 10 ++++++---- 2 files changed, 7 insertions(+), 5 deletions(-) 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)