私のweb2pyアプリケーションでは、レコードとそのすべての参照を複製する必要があります。たとえば、1人のユーザーが製品を持っています(sponseridはユーザーです)。この製品には、他のテーブルに保存されている非常に多くの機能があります(製品IDへの参照)。
そして、私の要件は、別のユーザーがこの製品をコピーしている場合、新しいレコードが新しいproductidと新しいsponseridで製品テーブルに生成されることです。また、すべての参照テーブルレコードも新しい製品IDで複製されます。事実上、すべてのテーブルに重複エントリが作成されており、変更は製品IDとスポンサーIDのみです。
製品テーブルのフィールドが変更されます。したがって、動的クエリを作成する必要があります。
以下のようなコードを書けたら
product = db(db.tbl_product.id==productid).select(db.tbl_product.ALL).first()
newproduct = db.tbl_product.insert(sponserid=newsponserid)
for field,value in product.iteritems():
if field!='sponserid':
db(db.tbl_product.id==newproduct).update(field=value)
しかし、更新関数でこのようなフィールド名を参照することはできません。
また、この要件を達成するための他のより良いロジックがあるかどうかを知りたいです。何か提案をいただければ幸いです。