以下を使用してフォームを作成できるかどうかを知りたいです。
record = request.args(0)
form = SQLFORM.factory(db.tbl1, db.tbl2, db.tbl3, db.tbl4, record)
試してみるとエラーが発生し続けるので、これは可能ですか?
define_table 引数がフィールドまたはテーブルではありません: 1
への位置引数SQLFORM.factory
は、フィールドまたはテーブル (そこからフィールドが抽出されます) のみにすることができます。他の引数はキーワード引数として渡す必要があります:
form = SQLFORM.factory(..., record=record)
ただし、record
引数としてレコード ID を渡しても機能しSQLFORM.factory
ません。これは、ダミー テーブルを使用しSQLFORM.factory
てダミー インスタンスが生成されるDAL
ためです。そのため、レコードを取得するためにレコード ID を使用してダミー テーブルをクエリすることはできません。いずれにせよ、レコード ID がどのレコードを参照するかは明確ではありません (フォームは 4 つの個別の db テーブルで構成されています)。
レコードを使用してフォームの値を事前入力することが目標である場合は、フィールドの既定値をそれらの値に設定することもできます。