0

以下を使用してフォームを作成できるかどうかを知りたいです。

record = request.args(0)
form = SQLFORM.factory(db.tbl1, db.tbl2, db.tbl3, db.tbl4, record)

試してみるとエラーが発生し続けるので、これは可能ですか?

define_table 引数がフィールドまたはテーブルではありません: 1

4

1 に答える 1

1

への位置引数SQLFORM.factoryは、フィールドまたはテーブル (そこからフィールドが抽出されます) のみにすることができます。他の引数はキーワード引数として渡す必要があります:

form = SQLFORM.factory(..., record=record)

ただし、record引数としてレコード ID を渡しても機能しSQLFORM.factoryません。これは、ダミー テーブルを使用しSQLFORM.factoryてダミー インスタンスが生成されるDALためです。そのため、レコードを取得するためにレコード ID を使用してダミー テーブルをクエリすることはできません。いずれにせよ、レコード ID がどのレコードを参照するかは明確ではありません (フォームは 4 つの個別の db テーブルで構成されています)。

レコードを使用してフォームの値を事前入力することが目標である場合は、フィールドの既定値をそれらの値に設定することもできます。

于 2013-08-13T14:43:46.430 に答える