Пример #1
0
class ProductSerializer(serializers.ModelSerializer):
    category = CategorySerializer(many=True)
    product_size_color_set = ProductSizeColorSerializer(many=True)
    reviews = ReviewSerializer(many=True)

    class Meta:
        model = Product
        fields = ('id', 'category', 'name', 'brand', 'staffRecommended',
                  'discount', 'description', 'product_size_color_set',
                  'reviews')

    def create(self, validated_data):
        details = validated_data.pop('product_size_color_set')
        categories = validated_data.pop('category')
        product = Product.objects.create(**validated_data)
        for i in categories:
            product.category.add(i)
        #product= Product.objects.create(**validated_data)
        for product_size_color_data in details:
            product_size_color_data['product'] = product
            Product_Size_Color.objects.create(**product_size_color_data)
        return product

    def update(self, instance, validated_data):
        product_size_color_data = validated_data.pop('product_size_color_set')
        categories = validated_data.pop('category')
        product_size_color = (instance.product_size_color_set).all()
        product_size_color = list(product_size_color)
        instance.name = validated_data.get('name', instance.name)
        instance.brand = validated_data.get('brand', instance.brand)
        instance.staffRecommended = validated_data.get(
            'staffRecommended', instance.staffRecommended)
        instance.description = validated_data.get('description',
                                                  instance.description)
        instance.discount = validated_data.get('discount', instance.discount)

        for i in categories:
            if i not in instance.category.all():
                instance.category.add(i)
        for j in instance.category.all():
            if j not in categories:
                instance.category.remove(j)
        instance.save()

        for p in product_size_color_data:
            # psc="Null"
            if len(product_size_color) > 0:
                psc = product_size_color.pop(0)
                psc.price = p.get('price', psc.price)
                psc.quantity = p.get('quantity', psc.quantity)
                psc.size = p.get('size', psc.size)
                psc.color = p.get('color', psc.color)
                psc.save()
            else:
                p['product'] = instance
                Product_Size_Color.objects.create(**p)

        return instance
Пример #2
0
    def patch(self, request, *args, **kwargs):
        id_ = self.kwargs.get('id')

        print("Id Of incoming PATCH request ", id_)

        review_object = Review.objects.filter(id=id_).first()

        print(review_object)
        # print("object_to_update", object_to_update)
        # try:
        #     object_to_update = Post.objects.get(pk=pk)
        # except Post.DoesNotExist:
        #     object_to_update= None
        serializer = ReviewSerializer(review_object, data=request.data, partial=True)
        if serializer.is_valid():
            serializer.save()
            return JsonResponse(code=201, data=serializer.data, safe=False)
        return JsonResponse(code=400, data="Wrong Parameters", safe=False)
Пример #3
0
class SpotSerializer(ModelSerializer):
    attractions = AttractionSerializer(many=True)
    comments = CommentSerializer(many=True)
    review = ReviewSerializer(many=True)
    localization = LocalizationSerializer()

    class Meta:
        model = Spot
        fields = '__all__'
Пример #4
0
 def create(self, request):
     try:
         product = Product.objects.get(id=request.data['id'])
     except:
         return Response({'status': 'fail'})
     user = self.request.user
     review = Reviews.objects.create(user=user,
                                     product=product,
                                     userrating=request.data['userrating'],
                                     detail=request.data['detail'])
     review.save()
     serializer = ReviewSerializer(review)
     return Response(serializer.data)
Пример #5
0
class CompletePontoTuristicoSerializer(serializers.ModelSerializer):
    attraction_list = AttractionSerializer(many=True)
    location = LocationSerializer()
    review_list = ReviewSerializer(many=True)
    comment_list = CommentSerializer(many=True)

    class Meta:

        model = PontoTuristico
        fields = [
            'id', 'name', 'description', 'status', 'location',
            'attraction_list', 'comment_list', 'review_list'
        ]
class TouristSpotSerializer(ModelSerializer):
    attractions = AttractionSerializer(many=True)
    comments = CommentSerializer(many=True)
    reviews = ReviewSerializer(many=True)
    address = AddressSerializer()

    full_description = serializers.SerializerMethodField()
    
    class Meta:
        model = TouristSpot
        fields = ['id', 'name', 'description', 'okay', 'attractions', 'comments', 'reviews', 'address', 'photo', 'full_description']

    def get_full_description(self, obj):
        return '%s - %s ' % (obj.name, obj.description)
Пример #7
0
class TouristSpotSerializer(ModelSerializer):
    attractions = AttractionSerializer(many=True, read_only=True)
    address = AddressSerializer()
    comments = CommentSerializer(many=True)
    reviews = ReviewSerializer(many=True)
    complete_description = SerializerMethodField()


    class Meta:
        model = TouristSpot
        fields = ('id', 'name', 'description', 'approved', 'photo',
                  'attractions', 'comments', 'reviews', 'address',
                  'complete_description', 'complete_description2')

    def get_complete_description(self, obj):
        return '%s - %s' %(obj.name, obj.description)
Пример #8
0
    def update(self, request, pk=None):
        review = self.get_object()
        if (request.user != review.user):
            return HttpResponse('you are not allowed')
        else:
            try:
                product = Product.objects.get(id=request.data['id'])
            except:
                return Response({'status': 'fail'})
            user = self.request.user

            review.userrating = request.data['userrating']
            review.detail = request.data['detail']
            review.save()
            serializer = ReviewSerializer(review)
            return Response(serializer.data)
Пример #9
0
class TuristicPointSerializer(ModelSerializer):
    atractions = AttractionsSerializer(many=True)
    comments = CommentSerializer(many=True)
    reviews = ReviewSerializer(many=True)
    address = AddressSerializer
    complete_description = SerializerMethodField()

    class Meta:
        model = TuristicPoint
        fields = ['id',
                  'name',
                  'description',
                  'approved',
                  'picture',
                  'atractions',
                  'comments',
                  'reviews',
                  'address',
                  'complete_description',
                  'complete_description2'
                  ]

    def get_complete_description(self, obj):
        return '%s - %s' % (obj.name, obj.description)