我使用jQuery在表单中克隆字段。

$('#table_catalogues')
    .clone()
    .attr('id','table_catalogues_'+i2l)
    .appendTo('#table_invoices_catalogues__row')


但是web2py不会创建这些字段,您无法在源代码中看到它们
当发送数据时,我发现例如:

form.vars.catalogues = [1,2,3]


其实我觉得很好,但是有了这个

Field(
    'catalogues',
    db.catalogues,
    requires=IS_IN_DB(db(db.catalogues.user_id==auth.user_id)(db.catalogues.useable==True),
    'catalogues.id',
    '%(catalogue_name)s'
),


给我带来麻烦。发送表格时,我总是会收到此错误:


  值不在数据库中


我尝试使用IS_IN_SET()并编写了一个函数来导出列表中的行,但出现此错误:


  不允许值

最佳答案

仅更改克隆对象的ID是不够的,您还需要更改name属性。如果您保留相同的名称,则在发布表单时,它将使用相同的名称覆盖原始字段。

10-06 11:50