Hi everyone,

I've been trying to create a form using CrudRestController which is having 
TW2 SingleSelectField as a field of a column with foreign key on it. I 
tried several approaches to get SingleSelectField to update it's options 
per request, but my approaches do not work. My code looks like:

from tgext.crud import CrudRestController
from tgext.crud.utils import SortableTableBase
import tw2.forms as twf

def get_proposer_id_options():
    return [(rec.id, rec.name) for rec in 
DBSession.query(Proposers_select_view).all()]

class BillController(CrudRestController):
    class Table(SortableTableBase):
        __model__ = Bills_view

    class Table_filler(TableFiller):
        __model__ = Bills_view

    @expose('genshi:amandmani.templates.crud_new', inherit=True)
    def new(self,  *args, **kw):
        params = super(BillController, self).new(*args, **kw)
        params['value'] = 
dict(term_id=DBSession.query(Max_term_id_view).one().max_term_id,
                               
name=DBSession.query(Max_bill_view).one().max_bill+1)

    class Add_form(AddRecordForm):
        __model__ = Bills
        proposer_id = twf.SingleSelectField('proposer_id',  
label='Predlagatelj: ', options=get_proposer_id_options())

    table = Table(DBSession)
    table_filler = Table_filler(DBSession)
    new_form = Add_form(DBSession)

When I add a proposer into a database and refresh the "new" page 
proposer_id SingleSelectField does not get updated.
i also tried to use DbSingleSelectField from tw2.sqla but then I have 
problems with setting initial values for the field (it needs to be an 
instance of Porposers, not an id value) and validating values ( 
DbSingleSelectField returns an instance of Porposers, not an id).

I also noticed that it works out in admin but could not figure out how is 
it accomplished there.

Based on the activity of Turbogears group it looks like that either no one 
is having that kind of a problem from 2011 (when TW2 was still 
unavailable), so most probably I am doing something wrong.
Any help would be greatly appreciated.

Puska

-- 
You received this message because you are subscribed to the Google Groups 
"TurboGears" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
To post to this group, send email to [email protected].
Visit this group at http://groups.google.com/group/turbogears.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to