This is much better, thanks! I recommend the following changes, mainly for clarity and to reduce coupling between this class and HTMLInterface:

- the name ```default``` is confusing, because the option already has a default (defined in the ```Default``` attribute). Can you rename the ```default``` parameter here to something like ```value```, since that's how the parameter is actually being used? This parameter could have a default of ```None```, and in that case ```self.Default``` would be used. This way you can render an HTML option if there is no user input yet, or if the page is reloaded from a failed attempt or something.

- this method could also be decoupled from ```HTMLInterface``` by having another optional parameter for the input prefix. For example, you might have ```input_prefix='pyqi_'```.

- in HTMLInterface on line 371, can the ```cast_value``` call be moved into this method (and made private)?