セロリのようなdjangoアプリでは、関数を記述して、特定のフォルダー(myFunc)のファイル(func.py)に配置できます。これで、スケジューラーによって実行されるこの関数への参照を使用してdjangoでオブジェクトを作成できます。
新しいセロリを書きたくありません。次のような動作を実現するためにどのような手法が使用されているかを知りたいです。文字列またはCharFieldによって参照される関数を実行します。
簡単な例
フォルダ構造:
myApp
---myFunc
-----func.py
-models.py
func.py
def test():
print "foo"
models.py
class RunAFunction(models.Model):
function = models.CharField(max_length=100)
pythonmanage.pyシェル
> from myApp.models import RunAFunction
> func = RunAFunction(function="test()")
> func.save()
myFunc.func.test()
今、RunAFunction()
クラスで走りたいです。使用する必要があると言わないでくださいeval()
;)