def diets(req): """ Get all diets, or create a new one """ if req.method == 'GET': diets = Diet.objects.all() serializer = DietReadSerializer(diets, many=True) return Response(serializer.data) elif req.method == 'POST': serializer = DietSerializer(data=req.data) if serializer.is_valid(): serializer.save() return Response(serializer.data, status=status.HTTP_201_CREATED) return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST)
def myDiets(req): user = User.objects.get(id=req.user.id) if req.method == 'GET': serializer = DietReadSerializer(user.diet_set, many=True) return Response(serializer.data) if req.method == 'PUT': pass return Response()
class UserReadSerializer(serializers.HyperlinkedModelSerializer): username = serializers.CharField(required=False, read_only=True) email = serializers.EmailField( validators=[UniqueValidator(queryset=User.objects.all())]) diets = DietReadSerializer(source='diet_set', many=True) class Meta: model = User fields = ('email', 'username', 'password', 'first_name', 'last_name', 'diets')
def diet(req, dietId): """ Retrive, modify or delete single diet by id """ try: diet = Diet.objects.get(id=dietId) except Diet.DoesNotExist: return Response(status=status.HTTP_404_NOT_FOUND) if req.method == 'GET': serializer = DietReadSerializer(diet) return Response(serializer.data) elif req.method == 'PUT': serializer = DietSerializer(diet, data=req.data) if serializer.is_valid(): serializer.save() return Response(serializer.data) else: return Response(serializer.errors, status=status.HTTP_400_BAD_REQUEST) elif req.method == 'DELETE': diet.delete() return HttpResponse(status=status.HTTP_204_NO_CONTENT)
def getDetailedUser(id): userModelObj = User.objects.get(id=id) # serializer = UserReadSerializer(user) user = UserReadSerializer(userModelObj).data foods = Food.objects.filter(user=id) serializer = FoodPureSerializer(foods, many=True) data = serializer.data for food in data: FoodService.calculateRate(food) user['foods'] = data restaurants = Restaurant.objects.filter(user=id) serializer = RestaurantDetailSerializer(restaurants, many=True) data = serializer.data for restaurant in data: RestaurantService.calculateRate(restaurant) user['restaurants'] = data user['isServer'] = len(data) > 0 serializer = DietReadSerializer(userModelObj.diet_set, many=True) user['diets'] = serializer.data foodComments = FoodComment.objects.filter(user=id) user['foodComments'] = FoodCommentPureSerializer(foodComments, many=True).data foodRates = FoodRate.objects.filter(user=id) user['foodRates'] = FoodRatePureSerializer(foodRates, many=True).data restaurantComments = RestaurantComment.objects.filter(user=id) user['restaurantComments'] = RestaurantCommentPureSerializer( restaurantComments, many=True).data restaurantRates = RestaurantRate.objects.filter(user=id) user['restaurantRates'] = RestaurantRatePureSerializer(restaurantRates, many=True).data return user