【发布时间】:2016-08-23 23:53:24
【问题描述】:
我有一个 SQLFORM.factory 字段:
Field('course', requires=IS_IN_SET(course_query, multiple=True), widget=SQLFORM.widgets.multiple.widget),
从查询中获取其内容:
course_query = external_db.executesql("SELECT course_id, course_title FROM course")
我希望用户能够选择一门或多门课程,他们可以。提交后,他们提交的 course_id 被以下对象捕获:
courses = request.vars.course
然后我遍历返回的 course_id 并将它们插入到表中:
if form.process().accepted:
for course in courses:
external_db.enrolment.insert(student_id=student, course_id=course)
response.flash = 'Record saved'
当用户选择不止一门课程时,这可以正常工作。每条提交的记录都会以正确的 course_id 插入到数据库中。但如果用户只选择一门课程,恰好有 2 位 ID,则只会插入第一个数字。
我发现如果提交了一个 2 位的 course_id 值,Web2py 会将其视为一个列表,每个数字都作为一个单独的元素。
如何使其将 request.vars 中的两位数值视为单个值而不是值列表?
谢谢大家。
【问题讨论】: