簡體   English   中英

在Django中,當動態路徑更改時如何移動圖像?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM