私はPython+Djangoにかなり慣れていないので、次の問題に悩まされています。次のようなカスタムModelFieldを作成しました。
class MyField(models.TextField):
def __init__(self, *args, **kwargs):
super(MyField, self).__init__(*args, **kwargs)
def pre_save(self, model_instance, add):
# custom operations here
# need access to variable xyz
このフィールドを使用するモデルは次のようになります。
class MyModel(models.Model):
my_field = MyField()
def __init__(self, model, xyz, *args, **kwargs):
self.instance = model
# how to pass xyz to ModelField before pre_save gets called?
self.xyz = xyz
def save(self, *args, **kwargs):
if self.instance:
self.my_field = self.instance
Q:コメントにあるように、実行時に、理想的にはmy_field.pre_save()が呼び出される前に、変数をModelFieldインスタンスに渡す方法はありますか?