menu update/delete
This commit is contained in:
parent
b1b3e923b7
commit
084db83c92
|
|
@ -38,9 +38,10 @@ urlpatterns = [
|
|||
path('menus/dishes/<int:pk>/gallery/<int:image_id>/', views.MenuGalleryCreateDestroyView.as_view(),
|
||||
name='menu-dishes-gallery-create-destroy'),
|
||||
path('menus/', views.MenuListCreateView.as_view(), name='menu-list'),
|
||||
path('menus/create/<int:establishment_id>/', views.CreateMenuForCertainEstablishmentView.as_view(), name='menu-list'),
|
||||
path('menus/create/<int:establishment_id>/', views.CreateMenuForCertainEstablishmentView.as_view(),
|
||||
name='menu-list'),
|
||||
path('card_and_wines/<int:establishment_id>/', views.CardAndWinesListView.as_view(), name='card-and-wines-get'),
|
||||
path('menus/<int:pk>/', views.MenuRUDView.as_view(), name='menu-rud'),
|
||||
path('menus/<int:menu_id>/', views.MenuRUDView.as_view(), name='menu-rud'),
|
||||
path('menus/dish/<int:establishment_id>/', views.DishCreateView.as_view(), name='create-dish'),
|
||||
path('menus/dish/change/<int:dish_id>/', views.DishUpdateDeleteView.as_view(), name='update-delete-dish'),
|
||||
path('menus/wine/<int:establishment_id>/', views.EstablishmentWineView.as_view(), name='menu-wine'),
|
||||
|
|
|
|||
|
|
@ -241,15 +241,35 @@ class MenuListCreateView(generics.ListCreateAPIView):
|
|||
return Response(response_data, status=status.HTTP_201_CREATED)
|
||||
|
||||
|
||||
class MenuRUDView(generics.RetrieveUpdateDestroyAPIView):
|
||||
class MenuRUDView(generics.UpdateAPIView, generics.DestroyAPIView):
|
||||
"""Menu RUD view."""
|
||||
serializer_class = serializers.MenuRUDSerializers
|
||||
serializer_class = serializers.MenuBackOfficeSerializer
|
||||
queryset = models.Menu.objects.all()
|
||||
permission_classes = get_permission_classes(
|
||||
IsEstablishmentManager,
|
||||
IsEstablishmentAdministrator,
|
||||
)
|
||||
|
||||
def get_object(self):
|
||||
return get_object_or_404(klass=models.Menu, pk=self.kwargs['menu_id'])
|
||||
|
||||
def update(self, request, *args, **kwargs):
|
||||
partial = kwargs.pop('partial', False)
|
||||
instance = self.get_object()
|
||||
data = request.data.copy()
|
||||
data['establishment_id'] = instance.establishment.pk
|
||||
serializer = self.get_serializer(instance, data=data, partial=partial)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
with transaction.atomic():
|
||||
self.perform_update(serializer)
|
||||
|
||||
if getattr(instance, '_prefetched_objects_cache', None):
|
||||
# If 'prefetch_related' has been applied to a queryset, we need to
|
||||
# forcibly invalidate the prefetch cache on the instance.
|
||||
instance._prefetched_objects_cache = {}
|
||||
|
||||
return Response(serializer.data)
|
||||
|
||||
|
||||
class MenuUploadsRUDView(generics.RetrieveDestroyAPIView):
|
||||
"""Menu uploads RUD view."""
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user