1

カスタマイズにより、'number_of_members' 値を Customer DocType に追加しました。

私のアプリケーションでは、値を更新する方法をいくつか試しました。ただし、Web ページで値が更新されることはありません。ある種の保存、更新、またはコミットの手順が欠けているように感じます。

たとえば、私は試しました:

  • frappe.client.set_value('Customer', '00042', 'number_of_members', 8887)
  • frappe.set_value('Customer', '00042', 'number_of_members', 8887)
  • frappe.db.set_value('Customer', '00042', 'number_of_members', 8887)
  • そしてまた
customer = frappe.get_doc('Customer', '00042')
customer.number_of_members = 8887
customer.save()

いずれの場合も、frappe.get_value や frappe.get_doc などを実行すると、値が 8887 に設定されていることが示されます。ただし、Web 側では更新されません。これが、ある種のキャッシュまたはデータベース トランザクションを更新していると思わせる理由であり、それを保存する方法が必要ですが、うまくいきませんでした。

私は主にこれに関係があるbench consoleかどうかをテストしていますが、アプリケーション コードでもいくつかの方法を試しました。

関連ドキュメント:

4

1 に答える 1

1

答えは、frappe.db.commit()変更を行った後に電話することです。誰かがドキュメントでこれを指摘して、不足しているものをよりよく理解できるようにしていただければ幸いです。

また、UI を送信する前に UI で何かを保存しようとするとfrappe.db.commit()、UI がハングすることにも気付きました。

于 2020-04-24T17:34:15.490 に答える