問題タブ [django-fsm]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
0 に答える
112 参照

django - 一時録音から永久録音

注文を作成するワークフローに取り組んでいます。これが私がこれまでに得たものです

、 、 の 3 つの直線的なステップを持つ標準的なワークフローを実装する必要がSelect Plan & PreferenceありPersonal InformationますReview & Payment

プランとプリファレンスの選択 : クライアントは、1 つのプランといくつかのクラフト製品を選択できます。

個人情報: クライアントは、住んでいる場所、電話番号、名、姓、電子メールなどに関連するフィールドに入力します...

レビューと支払い: 必要に応じてアカウントを作成し、注文を確認し、現在の注文に関連する支払いを行います。

大まかに言えば、支払いが受け入れられた場合 (e コマースなど)、ワークフローの最後のステップでアカウントと注文が記録されます。したがって、移行中は情報をデータベースに保存したくありません。移行中に一時的に情報を記録するにはどうすればよいですか? その情報を一時的に保存できる場合、支払いが受け入れられたら、どうすればその情報をデータベースに保存できますか? 支払いはワークフローの最後のステップであることに注意してください。

アップデート

ユーザーの情報を保存したくないので、キャッシュに入れます。ユーザー情報辞書を一定期間保存します。キャッシュのキーは、買い注文である可能性があります。または、個人情報から何かを使用できます。キャッシュのキーが必要です。

次に、情報を保存すると、最後のステップで辞書を取得できます。

その解決策を見つけましたが、それが最善の解決策であるかどうかはわかりません。一般に、その情報を追跡し続けることが重要であることはわかっていますが、そのプロジェクトの予算 (つまり、ストレージ、パフォーマンスなど) によって制限されているため、それを行うことができません。

0 投票する
1 に答える
397 参照

python - Django-fsm : 追加のメソッド パラメータが原因でダイナミック ターゲットが失敗する

https://github.com/kmmbvnr/django-fsm#target ドキュメントの元の例:

上記のアプローチを使用して、動的ターゲットの状態を解決しています。私の関数は次のようになります。

by=Noneロギングの目的で使用される追加のものがあります。ただし、この関数を実行すると、次のように表示されます。

ラムダで宣言していないパラメーターをラムダが考慮している理由がわかりません。make_active 関数から削除すれば実行できますby=Noneが、重要なパラメーターであるため実行できません。

助けてください。

0 投票する
0 に答える
314 参照

python - 動的なステップ数で有限ステート マシンを作成する方法

私は単純な線形ワークフローを持っています。単一のタスクには、完了する前に確認のために通過する必要がある承認者のリストがあります (線形に順番に)。

Userこれは、承認者用のモデルを使用するように設計されており、2 つのモデルが追加されています。

  • Taskワークフロー内の個々のタスクの詳細を管理するモデル。と
  • TaskStepの間の関係を明示的に管理するモデル( Django に依存して自動入力するのではなく)。TasksApprover

django-fsmを使用して有限状態マシンを作成し、ワークフロー内の各タスクのステータスを追跡したいと考えています。

各ワークフローの承認者の数を事前に定義しておけば、これを簡単に実行できることはわかっています。たとえば、それが 3 の場合、単純にこれを integerfield に入れ、各承認者が呼び出す関連関数を作成できます。

ただし、ユーザーが承認者の数 (したがってステップ数) を自分で定義できるようにしたいとします。どうすればこれについて行くことができますか?私はこれを平行ではなく、直線的な進行に保ちたいと思います。

django-fsm でこれを行う方法はありますか、それとも間違っているのでしょうか? STATUS_CHOICESおそらく、数/長さをループしてプロキシを動的に作成しようと考えましたapproversが、開始方法がわかりません。

おそらく、およびのlamba機能ですか?sourcetargetFSMIntegerField

0 投票する
1 に答える
48 参照

python - ここで @staticmethod を使用できないのはなぜですか?

django-fsm を使用してステート マシンを実装しています。コードは次のようになります

そしてそれは働いています。コードの可読性は、それが属するクラスの外にある小さなユーティリティ関数を持つことによって損なわれるので、試してみました

これは機能しません。今何ができるかわからないuser_ok_to_check_meが、何もしない場合でも常に True を返すノーオペレーション関数のように振る舞う。return False

なんで?この小さな関数をクラス内で宣言する方法はありますか? (ちょっと長すぎて使えない lambda instance, user:)