Asp.net mvc 如何获取sqlform';web2py中的动态s字段

Asp.net mvc 如何获取sqlform';web2py中的动态s字段,asp.net-mvc,web2py,Asp.net Mvc,Web2py,我的桌子: db.define_table('problem', Field('title','string',unique=True,length=255), Field('description','text',notnull=False,default=''), Field('in_date','datetime',notnull=False,default=request.now),

我的桌子:

db.define_table('problem',
                Field('title','string',unique=True,length=255),
                Field('description','text',notnull=False,default=''),
                Field('in_date','datetime',notnull=False,default=request.now),
                Field('input','text',notnull=False,default=''),
                Field('result','text',notnull=False,default=''),
                Field('defresult','text',notnull=False),
                Field('submit','integer',notnull=False,default=0),
                Field('solved','integer',notnull=False,default=0),
                Field('pass_rate','decimal(2,2)',notnull=True,default =0.00),
                format = '%(title)s')
通过sqlform在问题表中插入一条记录,动态获取sqlform中问题的结果字段

def test():
    user_id=_get_user_id(auth)
    id=request.args(0,cast=int)
    for row in db(db.belongs.id==id).select():
        taskid=row.task_id
        problemid=row.problem_id
    record=db.problem(problemid) or redirect(URL('index'))
    fields=['title','description','input','result']
    form=SQLFORM(db.problem,record,readonly=False,fields=fields)
    if form.process().accepted:
            db(db.problem.id==problemid).update(submit=db.problem.submit+1)
            if(form.vars.result==db.problem.defresult):
最后一行我想判断result字段是否等于defresult字段。
即使我在sqlform中输入了另一个值,并且之前插入的值在我重新加载页面后填充了sqlform,form.vars.result似乎也没有改变。如何清除sqlform?谢谢

form.vars.result
不包含新值。问题在于,在
form.vars.result==db.problem.defresult
中,您将该值与
字段
对象进行比较,而不是与记录中的实际值进行比较。在此之前,您已经:

record=db.problem(problemid)
因此,你的平等测试应该是:

if form.vars.result == record.defresult: