Django forms having this problem is, in my opinion, WAY down the list of problems. I originally wrote the forms library in iommi to be able to programmatically create forms in a sane way but it has since evolved to fix many more of the weaknesses of django. Some highlights:
- good rendering of forms to html!
- that can be customized without resorting to writing gigantic amounts of brittle template code
- render form errors
- strip space from inputs by default
- always writes the encoding attr so file uploads work by default instead of silently failing by default
- you don't need to manually pass request.FILES (another silent failure not just beginners get bitten by)
- don't allow misses like duplicate names that causes silent data loss
Plus the iommi features of nesting and having multiple forms/tables/menus/etc on one page with clean composition.