【问题标题】:Web2Py - Custom File Upload Form with CrudWeb2Py - 使用 Crud 的自定义文件上传表单
【发布时间】:2026-01-20 23:40:01
【问题描述】:

我正在 Web2Py 中创建自定义文件上传表单,并希望一些更有经验的用户可以帮助我解决一些问题。基本上,数据库(“t_file”)在“db_wizard.py”中定义,在控制器中,我调用 crud.create(db.t_file, next=URL('upload'));使用 {{form}} 在 html 文件中添加一个表单。

大约创建了十几个字段,其中两个是选择器,一个是文件上传/浏览字段,其余是输入框。我想进行以下更改:

-目前,选择器默认为空选项。它们在 DB 文件中定义如下:

Field('f_data_real_or_fabricated_bool', 'list:string', requires=IS_IN_SET(['T','F']), label=T('Real or Fabricated')),

但是。显示时,第一个选项为空,其他两个选项在空选项下方。有没有办法摆脱空选项?

-常规文本输入框、选择框、文件名输入框的宽度不同。使它们具有相同宽度的最佳方法是什么?我一直在尝试使用 CSS 做各种各样的事情,但似乎无法得到它。

-有没有办法为某些文本输入区域使用可扩展的文本框?

-我希望前几个输入字段是必需的,其余是可选的。默认情况下,必填字段应显示在上传页面上,其余可选字段仅应在选中“高级字段”(类似这些内容)复选框时出现。最好的方法是什么?

是否可以通过坚持使用 crud.create 或 crud.* 方法进行上述更改,而无需设计自定义表单?

【问题讨论】:

    标签: python web2py


    【解决方案1】:

    我认为您应该一次攻击一件事,然后尝试粘贴一些很有帮助的代码。我尝试回答最后一个问题:我认为如果不更改内部代码,您将无法使用 crud 界面执行此操作(不要这样做!)。使用 SQLFORM,您可以更改字段上的 CSS。但是,最好的和更可控的,虽然更辛苦的工作,是创建自定义表单。

    【讨论】: