基本上,我想在我的数据库中存储一些带有一些简单函数的python模块。我的项目在Django上运行。然而,我遇到了python_field,它的马车。我想在Model的save方法上执行代码。这样做的标准方法是什么?感谢。
答案 0 :(得分:1)
我猜他们不是标准的做法,因为它看起来像反模式。无论如何,出于学术目的,您可以尝试:
from django.db import models
from python_field.fields import PythonCodeField
class MyModel(models.Model):
....
source = PythonCodeField(blank=True, null=True)
....
def save(self, *args, **kwargs):
codeObject = compile(self.source, '<string>', 'exec')
exec( codeObject ) #executing before regular save
super(MyModel, self).save(*args, **kwargs)
exec( codeObject ) #executing after regular save