'Form values parsed from an `url-encoded` or `multipart/form-data`
encoded POST or PUT request body. The result is returned as a
:class:`FormsDict`. All keys and values are strings. File uploads
are stored separately in :attr:`files`.'

@DictProperty('environ', 'bottle.request.forms', read_only=True)
def forms(self):

    forms = FormsDict()
    for (name, item) in self.POST.allitems():
        if (not isinstance(item, FileUpload)):
            forms[name] = item
    return forms
