David,

    I followed your examples but still cannot get what I want.


> I don't know why it is letting you define it the first time around, but
> you certainly don't want to be doing that.  Like the error message
> says, it isn't thread safe.  Pass the default at display time:
>
>          return dict(  ....
>              form = model_form,
>              defaults = dict(<fieldname>=reachID.id),
>                  ...
>
>              )
>

My controller:

        return dict(modelname = self.modelname,
                    record = record,
                    form = model_form, defaults =
dict(Reach=reachID.id),
                    tg_paginate_limit=tg_paginate_limit,
tg_paginate_no=tg_paginate_no,rootDir=self.rootDir)


> and then in your template:
>
>      ${form(record, default=defaults)}
>

My template:

        ${form(record, default=defaults)}


Generated Source:

            <select id="form_Reach" name="Reach"
class="singleselectfield">
            <option value="454">AB-1</option><option value="455">AB-3</
option><option value="456">AD-1</option><option value="457">AD-2</
option><option value="458">AD-3</option><option value="459">AD-4</
option><option value="460">AL-1</option><option value="461">AN-1</
option><option value="462">AND-1</option><option value="463">AND-2</
option><option value="464">AND1</option><option value="465">ARN-1</
option><option value="466">ARN-2</option><option value="467">ARN-3</
option><option value="468">ARN-4</option><option value="469">BAK-2</
option><option value="470">BAR-1</option><option value="471">BAR-2</
option><option value="472">BAR-3</option><option value="473">BEH-1</
option><option value="474">BEH-2</option><option value="475">BEH-3</
option><option value="476">BEH-6</option><option value="477">BEL-1</
option><option

I even tried to hardcode the value in the template like this:

<?python defaults=dict(Reach=476) ?>
${form(record, default=defaults)}

but I still come up empty.

If I change the controller and set a default in there it works but I
cannot change the default afterward.

class SerialReachFields(WidgetsList):
    serialnumber = Label("Serial Number")
    reach=SingleSelectField("Reach", options=lambda: [(t.id, t.reach)
for t in Reach.select()], default=476)

Result:

            <select id="form_Reach" name="Reach"
class="singleselectfield">
            <option value="454">AB-1</option><option value="455">AB-3</
option><option value="456">AD-1</option><option value="457">AD-2</
option><option value="458">AD-3</option><option value="459">AD-4</
option><option value="460">AL-1</option><option value="461">AN-1</
option><option value="462">AND-1</option><option value="463">AND-2</
option><option value="464">AND1</option><option value="465">ARN-1</
option><option value="466">ARN-2</option><option value="467">ARN-3</
option><option value="468">ARN-4</option><option value="469">BAK-2</
option><option value="470">BAR-1</option><option value="471">BAR-2</
option><option value="472">BAR-3</option><option value="473">BEH-1</
option><option value="474">BEH-2</option><option value="475">BEH-3</
option><option selected value="476">BEH-6</option><option
value="477">BEL-1</option>


Anything else to look at?


--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to [EMAIL PROTECTED]
For more options, visit this group at 
http://groups.google.com/group/turbogears?hl=en
-~----------~----~----~----~------~----~------~--~---

Reply via email to