diff --git a/apps/establishment/serializers/back.py b/apps/establishment/serializers/back.py index 668b4181..f6b1715d 100644 --- a/apps/establishment/serializers/back.py +++ b/apps/establishment/serializers/back.py @@ -1,15 +1,17 @@ from functools import lru_cache -from account.serializers.common import UserShortSerializer from django.db.models import F +from django.shortcuts import get_object_or_404 from django.utils.translation import gettext_lazy as _ +from rest_framework import serializers + +from account.serializers.common import UserShortSerializer from establishment import models, serializers as model_serializers from establishment.models import ContactEmail, ContactPhone, EstablishmentEmployee from gallery.models import Image from location.serializers import AddressDetailSerializer, TranslatedField from main.models import Currency from main.serializers import AwardSerializer -from rest_framework import serializers from utils.decorators import with_base_attributes from utils.serializers import ImageBaseSerializer, ProjectModelSerializer, TimeZoneChoiceField @@ -696,3 +698,24 @@ class MenuGallerySerializer(serializers.ModelSerializer): attrs['image'] = image return attrs + + +class MenuFilesSerializers(ProjectModelSerializer): + menu = serializers.IntegerField(write_only=True) + + class Meta: + model = models.MenuFiles + fields = [ + 'id', + 'name', + 'type', + 'file', + 'menu' + ] + + def create(self, validated_data): + menu_id = validated_data.pop('menu') + menu = get_object_or_404(models.Menu, pk=menu_id) + instance = models.MenuFiles.objects.create(**validated_data) + menu.uploads.add(instance) + return instance