menu create
This commit is contained in:
parent
4d2d08a6f4
commit
22ee06403f
|
|
@ -727,7 +727,7 @@ class MenuBackOfficeSerializer(serializers.ModelSerializer):
|
|||
drinks_included = serializers.BooleanField(source='is_drinks_included')
|
||||
establishment_id = serializers.IntegerField(source='establishment.id')
|
||||
establishment_slug = serializers.CharField(source='establishment.slug', read_only=True)
|
||||
uploads = MenuFilesSerializers(many=True)
|
||||
uploads = MenuFilesSerializers(many=True, read_only=True)
|
||||
|
||||
class Meta:
|
||||
model = models.Menu
|
||||
|
|
@ -742,9 +742,11 @@ class MenuBackOfficeSerializer(serializers.ModelSerializer):
|
|||
'lunch',
|
||||
'last_update',
|
||||
'uploads',
|
||||
'uploads_ids',
|
||||
]
|
||||
extra_kwargs = {
|
||||
'last_update': {'read_only': True}
|
||||
'last_update': {'read_only': True},
|
||||
'uploads_ids': {'write_only': True, 'source': 'uploads', 'required': True},
|
||||
}
|
||||
|
||||
def validate(self, attrs):
|
||||
|
|
@ -753,8 +755,6 @@ class MenuBackOfficeSerializer(serializers.ModelSerializer):
|
|||
|
||||
def update(self, instance, validated_data):
|
||||
uploaded_files_ids = validated_data.pop('uploads')
|
||||
if len(uploaded_files_ids):
|
||||
uploaded_files_ids = list(models.MenuFiles.objects.filter(id__in=uploaded_files_ids))
|
||||
establishment_kwargs = validated_data.pop('establishment')
|
||||
establishment = get_object_or_404(models.Establishment, **establishment_kwargs)
|
||||
validated_data['establishment'] = establishment
|
||||
|
|
@ -764,8 +764,6 @@ class MenuBackOfficeSerializer(serializers.ModelSerializer):
|
|||
|
||||
def create(self, validated_data):
|
||||
uploaded_files_ids = validated_data.pop('uploads')
|
||||
if len(uploaded_files_ids):
|
||||
uploaded_files_ids = list(models.MenuFiles.objects.filter(id__in=uploaded_files_ids))
|
||||
establishment_kwargs = validated_data.pop('establishment')
|
||||
establishment = get_object_or_404(models.Establishment, **establishment_kwargs)
|
||||
validated_data['establishment'] = establishment
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
"""Establishment app views."""
|
||||
from django.db.models.query_utils import Q
|
||||
from django.db import transaction
|
||||
from django.http import Http404
|
||||
from django.shortcuts import get_object_or_404
|
||||
from django_filters.rest_framework import DjangoFilterBackend
|
||||
|
|
@ -172,18 +173,19 @@ class MenuListCreateView(generics.ListCreateAPIView):
|
|||
|
||||
def create(self, request, *args, **kwargs):
|
||||
response_data = []
|
||||
for menu in request.data:
|
||||
if 'id' in menu:
|
||||
with transaction.atomic():
|
||||
for menu in request.data:
|
||||
if 'id' in menu:
|
||||
|
||||
instance = get_object_or_404(Menu, pk=menu['id'])
|
||||
serializer = self.get_serializer(instance, data=menu)
|
||||
else:
|
||||
instance = get_object_or_404(Menu, pk=menu['id'])
|
||||
serializer = self.get_serializer(instance, data=menu)
|
||||
else:
|
||||
|
||||
serializer = self.get_serializer(data=menu)
|
||||
serializer = self.get_serializer(data=menu)
|
||||
|
||||
serializer.is_valid(raise_exception=True)
|
||||
serializer.save()
|
||||
response_data.append(serializer.data)
|
||||
serializer.is_valid(raise_exception=True)
|
||||
serializer.save()
|
||||
response_data.append(serializer.data)
|
||||
|
||||
return Response(response_data, status=status.HTTP_201_CREATED)
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user