upload_path
のImageField名を取得する必要があります。
私はのImageField定義で使用partial
を試してみました:`makemigrations`コマンドを使うたびにDjangoが新しいマイグレーションファイルを生成するのはなぜですか? upload_path属性が変更されたImageFIeldの場合
class MyModel(models.Model):
image = models.ImageField(
upload_to=partial(image_upload_path, 'image')
)
今私は、関数の最初の引数で、その文字列を取得できます。
def image_upload_path(field, instance, filename):
....
すべてが正常に動作しますが、今Djangoは移行ファイルを生成し、その都度Iそれに同じoperations
リストで、makemigrations
使用:
operations = [
migrations.AlterField(
model_name='genericimage',
name='image',
field=core_apps.generic_image.fields.SorlImageField(upload_to=functools.partial(core_apps.generic_image.path.image_upload_path, *('image',), **{}),),
),
]
がたぶんあり他の方法にアクセスするフィールド名upload_path
または何らかの形で私の解決策を修正することができますか?
インスタンス - ** FileFieldには定義されているモデルのインスタンス.. **、私の場合、それは 'MyModel'ない' ImageField' –
DjangoののImageField [FileFieldにように振る舞う](HTTPSのインスタンスであります://docs.djangoproject.com/ja/1.10/ref/models/fields/#imagefield)にいくつかのオプションがあります。 ImageFieldを 'MyModel'クラスに追加しました。 これはあなたが望むものではありませんか? –
'instance'はModelのインスタンスを返します。ここで' ImageField'は 'image'という名前で定義されています。 'upload_path'にこの' name 'が必要です。とにかく私はカスタムフィールドを書く、私はすぐに答えを更新します。助けてくれてありがとう –