The problem is that PyDev does an introspection when you add it to the forced builtins, but bottle doesn't work directly like that.
i.e.: if you open a shell and do:
from bottle import request
dir(request.POST)
you have an error (and this prevents PyDev from properly analyzing that module):
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
File "C:\tools\Miniconda\envs\check\lib\site-packages\bottle.py", line 166, in __get__
if key not in storage: storage[key] = self.getter(obj)
File "C:\tools\Miniconda\envs\check\lib\site-packages\bottle.py", line 1218, in POST
pairs = _parse_qsl(tonat(self._get_body_string(), 'latin1'))
File "C:\tools\Miniconda\envs\check\lib\site-packages\bottle.py", line 1185, in _get_body_string
data = self.body.read(clen)
File "C:\tools\Miniconda\envs\check\lib\site-packages\bottle.py", line 1197, in body
self._body.seek(0)
File "C:\tools\Miniconda\envs\check\lib\site-packages\bottle.py", line 166, in __get__
if key not in storage: storage[key] = self.getter(obj)
File "C:\tools\Miniconda\envs\check\lib\site-packages\bottle.py", line 1164, in _body
read_func = self.environ['wsgi.input'].read
KeyError: 'wsgi.input'
Solutions include creating your own wrapper for that in your own code and at that place notifying that this is expected (Ctrl+1 in that line will show an option to ignore that error in a specific line) -- How do I fix PyDev "Undefined variable from import" errors? has other fixes.