欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

定制FileField中的上傳文件名稱實(shí)例

 更新時(shí)間:2017年08月23日 09:21:33   投稿:jingxian  
下面小編就為大家?guī)?lái)一篇定制FileField中的上傳文件名稱實(shí)例。小編覺(jué)得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

FileField中的upload_to屬性可以設(shè)定上傳文件的存儲(chǔ)目錄和名稱,它可以是個(gè)字符串,也可以是個(gè)callable,比如一個(gè)方法。

當(dāng)upload_to的值設(shè)為一個(gè)方法時(shí),就可以對(duì)上傳文件的名稱進(jìn)行修改了。方法需要兩個(gè)參數(shù),instance與filename,instance為此FileField所屬的Model實(shí)例,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) 

當(dāng)一個(gè)類(lèi)定義了__call__方法時(shí),也可以像func一樣被調(diào)用,所以,upload_to的值也可以是一個(gè)定義了__call__方法的類(lèi)。

比如,要根據(jù)上傳時(shí)間為文件名加時(shí)間戳:

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中的上傳文件名稱實(shí)例就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python continue語(yǔ)句實(shí)例用法

    Python continue語(yǔ)句實(shí)例用法

    在本篇文章里小編給大家整理了關(guān)于Python continue語(yǔ)句實(shí)例用法,有需要的朋友們可以跟著學(xué)習(xí)下。
    2020-02-02
  • python中管道用法入門(mén)實(shí)例

    python中管道用法入門(mén)實(shí)例

    這篇文章主要介紹了python中管道用法,實(shí)例分析了管道的創(chuàng)建、輸入、輸出及關(guān)閉等技巧,需要的朋友可以參考下
    2015-06-06
  • PYTHON繪制雷達(dá)圖代碼實(shí)例

    PYTHON繪制雷達(dá)圖代碼實(shí)例

    這篇文章主要介紹了PYTHON繪制雷達(dá)圖代碼實(shí)例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-10-10
  • 不同版本中Python matplotlib.pyplot.draw()界面繪制異常問(wèn)題的解決

    不同版本中Python matplotlib.pyplot.draw()界面繪制異常問(wèn)題的解決

    這篇文章主要給大家介紹了關(guān)于不同版本中Python matplotlib.pyplot.draw()界面繪制異常問(wèn)題的解決方法,文中介紹的非常詳細(xì),需要的朋友可以參考借鑒,下面來(lái)一起看看吧。
    2017-09-09
  • 淺析python中的set類(lèi)型

    淺析python中的set類(lèi)型

    這篇文章主要介紹了python中的set類(lèi)型,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2022-06-06
  • Python使用Beautiful Soup實(shí)現(xiàn)解析網(wǎng)頁(yè)

    Python使用Beautiful Soup實(shí)現(xiàn)解析網(wǎng)頁(yè)

    在這篇文章中,我們將介紹如何使用 Python 編寫(xiě)一個(gè)簡(jiǎn)單的網(wǎng)絡(luò)爬蟲(chóng),以獲取并解析網(wǎng)頁(yè)內(nèi)容。我們將使用 Beautiful Soup 庫(kù),它是一個(gè)非常強(qiáng)大的庫(kù),用于解析和操作 HTML 和 XML 文檔。讓我們開(kāi)始吧
    2023-05-05
  • python編碼問(wèn)題匯總

    python編碼問(wèn)題匯總

    這篇文章主要給大家分享的是python編碼問(wèn)題匯總,字符編碼簡(jiǎn)單介紹和發(fā)展史及使用方法的一些介紹,文章內(nèi)容詳細(xì),具有一定的參考價(jià)值,需要的小伙伴可以參考一下
    2022-03-03
  • python方法如何實(shí)現(xiàn)字符串反轉(zhuǎn)

    python方法如何實(shí)現(xiàn)字符串反轉(zhuǎn)

    這篇文章主要介紹了python方法如何實(shí)現(xiàn)字符串反轉(zhuǎn)問(wèn)題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-01-01
  • Python實(shí)現(xiàn)登陸文件驗(yàn)證方法

    Python實(shí)現(xiàn)登陸文件驗(yàn)證方法

    本篇文章中我們給大家分享了關(guān)于Python實(shí)現(xiàn)登陸文件驗(yàn)證的方法和技巧,有興趣的朋友們參考學(xué)習(xí)下。
    2018-10-10
  • python實(shí)現(xiàn)兩個(gè)dict合并與計(jì)算操作示例

    python實(shí)現(xiàn)兩個(gè)dict合并與計(jì)算操作示例

    這篇文章主要介紹了python實(shí)現(xiàn)兩個(gè)dict合并與計(jì)算操作,結(jié)合具體實(shí)例形式分析了Python使用collections.Counter進(jìn)行字典dict合并與遍歷輸出相關(guān)操作技巧,需要的朋友可以參考下
    2019-07-07

最新評(píng)論