如何过滤SQLFORM,web2py中的选择选项?

时间:2019-07-10 06:54:20

标签: web2py

我只想在表格上选择经过认证的老师的学生。但是我找不到如何过滤。你能帮我吗? 最好,

db.define_table(
    'student',
    Field('first_name', length=50, requires=IS_NOT_EMPTY(), notnull=True, label='Name'),
    Field('last_name', length=50, requires=IS_NOT_EMPTY(), notnull=True, label='Last Name'),
    Field('is_active', 'boolean', label=T('Active?')),
    auth.signature,
    format='%(first_name)s %(last_name)s')
db.define_table(
    'student_teacher',
    Field('teacher', 'reference auth_user', 
        default=auth.user_id, 
        represent=lambda x, row: db.auth_user[x].first_name + " " + db.auth_user[x].last_name),
    Field('student', 'reference student', 
        represent=lambda x, row: db.student[x].first_name + " " + db.student[x].last_name
        ),
    auth.signature)
db.define_table(
    'session_header',
    Field('session_date', type="date", label='Session Date'), 
    Field('teacher', 'reference auth_user', notnull=True, readonly=True, default=auth.user_id),
    Field('student', 'reference student', notnull=True),
    auth.signature)
subset = db(db.student_teacher.teacher == request.vars.teacher)
db.student_teacher.student.requires = IS_IN_DB(
    db, db.student.id, '%(first_name)s %(last_name)s', 
    zero=T('Choose one'), 
    _and=IS_NOT_IN_DB(subset, 'student_teacher.student'))

def create():
    form = SQLFORM(session_header)
    if form.process().accepted: 
        response.flash = "Record inserted successfully."
    elif form.errors:
        response.flash = "Please correct the form errors."
    response.view = 'sessions/create.html'
    return dict(form=form)

我还添加了student_teacher表。

0 个答案:

没有答案