You can try:
for option in form.elements('option'):
option['_value'] = XML(option['_value'])
option[0] = XML(option[0])
Anthony
On Monday, September 3, 2012 3:30:32 PM UTC-4, Jose C wrote:
>
> I've spent a couple of hours googling and rtfm-ing but can't seem to find
> a clean way of doing this.
>
> I have a legacy database with various fields containing known, safe html
> text (e.g. `this & that` and things like apostrophes e.g. `John's
> place`). I need to use a number of these fields as options in multiple
> select boxes in a form.
>
> Just using {{=XML(form)}} in the view doesn't work since it appears the
> form is preprocessed and it escapes the & in & resulting in raw html
> like `&` being output (which then displays to the user as &
> instead of just the &.
>
> In the controller I use:
> form = SQLFORM.factory(
> Field('regions', requires=IS_EMPTY_OR(IS_IN_DB(db,
> db.regions.id, '%(region)s', orderby='sort_order', multiple=True))),
>
> Is there a way to tell web2py that the contents of a field, coming from a
> db, are safe prior to it rendering the form so that it does not escape it?
>
> Thank you,
> JC
>
--