FileField自訂上傳檔案名稱詳解
本文透過實例程式碼介紹了客製化FileField中的上傳檔案名稱問題,有興趣的朋友參考吧
FileField中的upload_to屬性可以設定上傳檔案的儲存目錄和名稱,它可以是個字串,也可以是個callable,例如一個方法。
當upload_to的值設為一個方法時,就可以對上傳檔案的名稱進行修改了。方法需要兩個參數,instance與filename,instance為此FileField所屬的Model實例,filename為上傳檔案的名稱。
範例:
def user_directory_path(instance, filename): # file will be uploaded to MEDIA_ROOT/user_<id>/<filename> return 'user_{0}/{1}'.format(instance.user.id, filename) class MyModel(models.Model): upload = models.FileField(upload_to=user_directory_path)
當一個類別定義了__call__方法時,也可以像func一樣被調用,所以,upload_to的值也可以是一個定義了__call__方法的類別。
例如,要依照上傳時間為檔案名稱加上時間戳記:
import hashlib import os import time from django.utils.deconstruct import deconstructible @deconstructible class TimeStampFileName(object): def __init__(self, path): self.path = os.path.join(path, "%s%s") def __call__(self, instance, filename): extension = os.path.splitext(filename)[1] data = "%s_%d"%(filename,int(time.time())) file_hash = hashlib.sha1(data).hexdigest() return self.path % (file_hash, extension)
Model中的FileField可以如下定義:
class MyModel(models.Model): upload = models.FileField(upload_to=TimeStampFileName('media/'), )
以上是FileField自訂上傳檔案名稱詳解的詳細內容。更多資訊請關注PHP中文網其他相關文章!

熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

許多Mac用戶往往習慣保留設備的預設名稱,可能從未考慮過更改。很多人選擇沿用初始設定時的名稱,例如「張三的MacBookAir」或簡單的「iMac」。學會如何修改Mac的名稱是一項非常實用的技能,尤其是在擁有多台裝置時,可以幫助你快速區分和管理它們。接下來,我們將一步步教你如何在macOS系統中更改電腦名稱、主機名稱和Bonjour名稱(本地主機名稱)。為什麼要更改Mac名稱?修改Mac名稱不僅能彰顯個性,還能有助於提升使用體驗:個人化你的Mac:預設名稱可能不符合你的口味,換一個自己喜歡的名字

長期以來,InternetExplorer的失寵一直不是秘密,但隨著Windows11的到來,現實開始了。 Edge將來不再有時取代IE,它現在是微軟最新作業系統中的預設瀏覽器。目前,您仍然可以在Windows11中啟用InternetExplorer。但是,IE11(最新版本)已經有了一個正式的退役日期,即2022年6月15日,時間在流逝。考慮到這一點,您可能已經注意到InternetExplorer有時會打開Edge,而您可能不喜歡它。那為什麼會這樣呢?在

越來越多的用戶開始升級win11系統,由於每個用戶的使用習慣不同,還是有不少用戶在使用ie11瀏覽器,那麼win11系統用不了ie瀏覽器,該怎麼辦呢? windows11還支援ie11嗎?下面就來看看解決方法。 win11無法使用ie11瀏覽器的解決方法1、先右鍵開始選單,選擇「命令提示字元(管理員)」開啟。 2.開啟之後,直接輸入“Netshwinsockreset”,回車確定。 3.確定之後再輸入「netshadvfirewallreset&rdqu

近期不少的win10用戶們在使用電腦瀏覽器的時候發現自己的ie瀏覽器總是自動的跳到edge瀏覽器,那麼win10打開ie自動跳轉edge怎麼關閉?。下面就讓本站來為用戶們來仔細的介紹一下win10打開ie自動跳轉edge關閉方法吧。 1.我們登入edge瀏覽器,點選右上角...,找下拉的設定選項。 2.我們進入設定後,在左側欄點選預設瀏覽器。 3.最後我們在相容性中,勾選不允許IE模式下重新載入網站,重啟ie瀏覽器即可。

2022年6月15日是Microsoft結束對InternetExplorer11(IE11)的支援並關閉其舊版瀏覽器章節的日子。一段時間以來,該公司一直在提醒用戶注意這一生命週期結束日期,並呼籲他們計劃遷移到MicrosoftEdge。 Microsoft將IE11與Windows8.1捆綁在一起,作為Windows的現代預設網頁瀏覽器。儘管它從未達到Chrome的(目前)高度,但它是2014年使用量第二大的桌面瀏覽器,僅次於IE8。當然,隨著20

ie捷徑無法刪除的解決方法:1、權限問題;2、捷徑損壞;3、軟體衝突;4、登錄問題;5、惡意軟體;6、系統問題;7、重新安裝IE;8、使用第三方工具;9、檢查捷徑的目標路徑;10、考慮其他因素;11、諮詢專業人士。詳細介紹:1、權限問題,右鍵點擊快捷方式,選擇“屬性”,在“安全性”選項卡中,確保有足夠的權限刪除該快捷方式,如果沒有,可以嘗試以管理員身份運行等等。

ie加速功能怎麼開? ie打開網頁的速度太慢,我們可以在裡面開啟硬體加速模式。很多小夥伴反應說使用ie瀏覽器的時候,開啟網頁的速度特別的慢,這樣對我們瀏覽網頁也造成了一定影響。就想詢問小編有什麼解決辦法,這種情況是可以開啟ie瀏覽器的硬體加速模式,小編下面整理了ie開啟加速功能方法,感興趣的話一起往下看看! ie開啟加速功能方法開啟IE安全瀏覽器,點選右上角齒輪狀的「設定」圖標,選擇「Internet選項」進入,如圖所示。 2、在Internet選項的視窗頭部的標籤導航中點擊“進階”,如圖所示。 3、

win7如何卸載ie9?計算機能處理工作中的事情,也能做追劇。和追劇一樣,我們通常是用瀏覽器看的,因為瀏覽器越來越多,功能也很完善,所以現在使用ie9瀏覽器的人越來越少,那麼win7怎麼卸載瀏覽器,看看win7系統卸載ie9瀏覽器的方法。 win7如何卸載ie9瀏覽器。 1.首先,雙擊開啟MyPC,選擇卸載或更換程式;2.然後找到“ViewInstallUpdate”,然後點開。你可以在裡面找到"windowsinternetexplorer9",然後右鍵刪除。上面是小編帶著wi
