This is wrong. ``_`` could appear in a name, not only as separator (for instance, the CSRF token field is ``_token`` and its id will be``form__token`` when the root name is ``form``)