我需要在upload_path
函數中獲取ImageField名稱。
我試過的ImageField定義使用partial
:爲什麼Django每次使用`makemigrations`命令時都會生成新的遷移文件。對於更改了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的生成遷移文件,每次我它使用makemigrations
,同operations
名單:
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/en/1.10/ref/models/fields/#imagefield)與一些額外的選項。 您將一個ImageField添加到「MyModel」類。 這不是你想要的嗎? –
'instance'返回Model的實例,其中定義了名爲'image'的ImageField。我在'upload_path'中需要這個'name'。無論如何,我寫自定義字段,我會盡快更新答案。感謝您嘗試提供幫助 –