__init__
次のメソッドを持つモデルがあります。
class Foo(models.Model):
name = models.CharField(max_length=50)
def __init__(self, *args, **kwargs):
self.bar = kwargs.pop('bar', False)
super(Foo, self).__init__(*args, **kwargs)
if self.bar:
# do something
pass
次に、特定のModelFormを作成する必要があります。
class FooForm(ModelForm):
class Meta:
model = Foo(bar='something')
fields = ('name',)
それは明らかに機能しません:
TypeError: 'Foo' object is not callable
これを克服する方法はありますか?
アップデート
達成したいことの詳細:ImageFieldを持つImageモデルがあります。使用するフォームによって保存方法が異なります。
モデル:
class Image(models.Model):
image = models.ImageField(upload_to=imageUploadTo)
user = models.ForeignKey('auth.User')
def __init__(self, *args, **kwargs):
self.overwrite = kwargs.pop('overwrite', False)
super(Image, self).__init__(*args, **kwargs)
if self.overwrite:
self.image.storage = OverwriteStorage()
古い画像を上書きするフォームとデフォルトの動作を使用するフォームを作成できるようにしたいと思います。これを達成するための最良の方法は何ですか?