[英]In Django, How Do I Move Images When A Dynamic Path Changes?
我有一個帶圖像字段(自定義ThumbnailImageField類型)的Django應用,該圖像字段根據圖像所附加項的標題,類型和國家(upload_至= get_ image_path)自動生成圖像的文件路徑。 這是如何做:
def get_image_path(instance, filename):
dir = 'images'
subdir = instance.get_type_display()
sub_subdir = 'other'
if instance.country:
sub_subdir = instance.country.name
name = instance.name
extension = filename.split('.')[-1]
return "%s/%s/%s/%s.%s" % (dir, subdir, sub_subdir, name, extension)
它工作得很好,但在以下情況下除外:當我重命名項目,更改項目來源的國家或更改項目的類別時,圖像將成為無效鏈接,因為它會生成新的圖像路徑而不會移動原始文件。
因此,魔術問題:
Django中是否有一些保存函數可以掛鈎並覆蓋,可以讓我擁有原始對象和建議的值並進行比較,因此我知道圖像路徑在哪里以及需要去哪里(然后使用此信息)在代碼中移動/重命名)?
您可能想研究一下信號:
http://docs.djangoproject.com/en/dev/topics/signals/
特別是django.db.models.signals.pre_save信號:
http://docs.djangoproject.com/en/dev/howto/custom-model-fields/#pre_save
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.