Notes

The following notes are more general discussion of particular parts of the implementation.

Grandchild widgets

Hiding was originally designed just to work on siblings, i.e. widgets that are in the same container as the hiding control. There is now preliminary support for “grandchild” widgets (grandchildren of the container) This may be useful, say if you have a form with a number of fieldsets. In the simple case, a hiding control in the top level can only control entire fieldsets; the grandchild widget functionality lets you control individual fields.

So, say you’ve got an overall form, containing a fieldset called “fred” with fields “a” and “b”. You might setup a mapping like this:

{
    1001: ["fred.a"],
    1002: ["fred.b"],
}

Note: if you do this, you must not reference “fred” itself in a mapping, that will almost certainly break things. For validation to work correctly, you need to specify strip_name=True on the fieldset. Also, grandchild widgets have limited functionality. For example, they cannot be hiding controls themselves.