def retrieve(self, request, pk=None): """ get an entry detail by giving the pk key :param request: rest framework request :param pk: primary key :return: rest framework reaponse """ if not pk: raise ParamNotEnoughException('id') try: instance = Environments.view(pk) except ObjectDoesNotExist: raise ObjectNotExistException(pk) # add the module information instance.details = instance.entries.all() serializer = EnvironmentSerializer(instance) return Response(serializer.data)
def update(self, request, pk=None): """ update a :param request: :param pk: :return: """ if not pk: raise ParamNotEnoughException('id') try: instance = Environments.view(pk=pk) except ObjectDoesNotExist: raise ObjectNotExistException(pk) serializer = EnvironmentSerializer(data=request.data) if serializer.is_valid(raise_exception=True): instance.name = serializer.validated_data['name'] instance.description = serializer.validated_data.get( 'description', instance.description) try: instance.save() except IntegrityError: raise DBIntegrityException(instance.name) return Response(EnvironmentSerializer(instance).data)