私のプロジェクトにはある種のTask
があります。タスクとそのパラメータは後で関数呼び出しに組み立てられます。dbへの関数呼び出しを保存する最良のモデルデザイン
今私のTask
モデルは次のようになります。
class Task(TimeStampedModel):
ACTIVE = 1
COMPLETED = 0
FAILED = -1
STATUS_CHOICES = (
(ACTIVE, 'Active'),
(COMPLETED, 'Completed'),
(FAILED, 'Failed'),
)
ACTION1 = 1
ACTION2 = 2
ACTION3 = 3
ACTION_CHOICES = (
(ACTION1, 'Action1'),
(ACTION2, 'Action2'),
(ACTION3, 'Action3'),
)
status = models.SmallIntegerField(choices=STATUS_CHOICES, default=ACTIVE)
action = models.SmallIntegerField(choices=ACTION_CHOICES, default=ACTION1)
date_completed = models.DateTimeField(null=True, blank=True)
後、私はTask
オブジェクトを作成し、そのaction
呼び出し、特定の機能に依存します。たとえば、task.action == 1
の場合はsome_module.action1()
に電話します。彼らが将来どのようなものになるのか分からない場合、関数に渡すことができる引数をどのように格納できるのか、私は興味があります(some_module.action1(arg1, arg2)
)。それで、そう言うことができるなら、関数kwargsの辞書を私のフィールドとして保存したいと思います。私が望むものをアーカイブする最良の方法は何ですか?