私は値の 'グリッド'版のsmartgridを使用します。これを行うには、.represent関数を使用して変数名にrow_idを追加します。これにより、request.post_varsで更新するものを取得できます。ここで、提出された名前のidsのリストを取得値とともに取得できます。 しかし、DBで追加のI/Oをせずに、スマートグリッド内のユーザーによって何が変更されたのかを確認したいと思います。ユーザーが変更する前にフォームフィールドと初期値が記録されるグローバル変数はありますか?または、ビューに送信する前にフォームフィールドと値を抽出する関数ですか?Web2py - SQLFORM.smartgrid:提出する前にフィールド名と値を取得する方法
0
A
答えて
0
db.define_table('cny',Field('f_cny'))
def tst():
tb = db.cny
if len(request.post_vars) >0:
d = {}
for k,v in request.post_vars.iteritems():
(f,sep,r) = k.partition('_r_')
if r:
if not r in d:
d[r] = {}
d[r][f] = v #should only be done if d[r][f] was changed!!!
for r in d:
if len(d[r]):
db(tb.id==r).update(**d[r])
tb.f_cny.represent=lambda v,r:string_widget(tb.f_cny, v, **{'_name':'f_cny_r_%s' % r.id})
f = SQLFORM.smartgrid(tb,
linked_tables=[],
selectable=(lambda ids:redirect(URL(request.controller,request.function,args=request.args))))
return dict(f=f)
+1
答えの説明は、他の人が簡単に理解できるようになるでしょう – Prasad
関連する問題
- 1. protobufメッセージを調べる - フィールド値を名前で取得する方法?
- 2. PHPからクッキーの名前と値を取得する方法
- 3. 列名の代わりにフィールド値を取得する方法?
- 4. Odoo(OpenERP)のモデルの名前フィールドを取得する方法は?
- 5. 前回の反復のフィールド値を取得する方法は?
- 6. web2pyで複数のフォーム提出を許可する方法は?
- 7. 呼び出すバットスクリプトの名前を取得する方法
- 8. LINQ to SQLフィールド名で値を取得する方法
- 9. データストア - ID /名前値の取得方法
- 10. 名前でフィールドを取得
- 11. モバイルブラウザでストライプトークンを取得する前にフォームを提出する
- 12. 文書 - タグの名前を名前で取得する方法
- 13. 私はangularjsでそれを提出する前に、テキストボックスで古い値を取得する方法?
- 14. いくつかの名前/値フィールドからMysqlのフィールドを取得する方法
- 15. Laravel 5で関係のあるフィールドの名前を取得する方法は?
- 16. JQueryを使用してHTMLの名前と値を取得する方法
- 17. Wordpressでカスタムフィールドの名前と値を出力する方法
- 18. Formidable Node module ...ファイルアップロードの進行が始まる前にファイル以外のフィールド名/値を取得する方法
- 19. TemplateHaskellという名前の変数のリテラル値を取得する方法
- 20. zendで "controller"という名前のパラメータの値を取得する方法は?
- 21. x => x.propertyでContstantExpressionの名前と値を取得する方法
- 22. onChangeフィールドイベントの名前を指定せずに参照フィールド値を取得する
- 23. Laravel - 別のフィールドから名と姓を取得し、dbの名前列に格納する方法
- 24. 各要素の数と名前を取得する方法は?
- 25. 各要素の数と名前を取得する方法
- 26. アクティビティワークフローの現在と前のタスク名を取得する方法
- 27. DNNの親ページの名前とリンクを取得する方法
- 28. パンダシリーズから最大値と名前を取得するには?
- 29. JSとPHPの隠しフィールドの値を取得する方法
- 30. コントローラーでJSONフィールドと値を取得する方法は?
達成しようとしていることがはっきりしていないので、コードを示してください。 – Anthony
auth.requires_login @デシベル。define_table( 'CNY'、フィールド( 'f_cny')) () DEF TST():= db.cny TB(request.post_vars)lenの場合> 0: D = { } rの場合 d [r] [f] = v rの場合は、 のk、vの場合はrequest.post_vars.iteritems(): (f、sep、r)= k.partition( '_ r_') d: db(tb.id_= r).update(** d [r]) tb.f_cny.represent = lambda v、r:string_widget(tb.f_cny、v、** {'_ name': ' (URL、request.controller、request.function、args = request.args))リダイレクト(URLの(request.controller、request.functions、args = request.args))) ) return dict(f = f) – Serge
適切な書式で質問にコードを入れてください。 – Anthony