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

關(guān)于定制FileField中的上傳文件名稱問題

 更新時(shí)間:2017年08月22日 16:50:20   作者:再見紫羅蘭  
本文通過實(shí)例代碼給大家介紹了定制FileField中的上傳文件名稱問題,感興趣的朋友參考下吧

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

  當(dāng)upload_to的值設(shè)為一個(gè)方法時(shí),就可以對上傳文件的名稱進(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è)類定義了__call__方法時(shí),也可以像func一樣被調(diào)用,所以,upload_to的值也可以是一個(gè)定義了__call__方法的類。

   比如,要根據(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/'), )

總結(jié)

以上所述是小編給大家介紹的定制FileField中的上傳文件名稱,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會(huì)及時(shí)回復(fù)大家的。在此也非常感謝大家對腳本之家網(wǎng)站的支持!

相關(guān)文章

  • Ajax提交與傳統(tǒng)表單提交的區(qū)別說明

    Ajax提交與傳統(tǒng)表單提交的區(qū)別說明

    本篇文章主要是對Ajax提交與傳統(tǒng)表單提交的區(qū)別進(jìn)行了詳細(xì)的介紹,需要的朋友可以過來參考下,希望對大家有所幫助
    2014-02-02
  • js中.sort()函數(shù)的常見用法與高級操作

    js中.sort()函數(shù)的常見用法與高級操作

    JavaScript中的sort函數(shù)可以用來對數(shù)組進(jìn)行排序,默認(rèn)情況下sort函數(shù)將數(shù)組中的元素轉(zhuǎn)換為字符串,并按照Unicode碼點(diǎn)的順序進(jìn)行排序,下面這篇文章主要給大家介紹了關(guān)于js中.sort()函數(shù)的常見用法與高級操作的相關(guān)資料,需要的朋友可以參考下
    2023-05-05
  • JavaScript各類型的關(guān)系圖解

    JavaScript各類型的關(guān)系圖解

    這篇文章主要通過一張圖讓你看懂JavaScript各類型的關(guān)系,需要的朋友可以參考下
    2015-10-10
  • 淺談JavaScript中的String對象常用方法

    淺談JavaScript中的String對象常用方法

    這篇文章主要介紹了JavaScript中的String對象常用方法,非常簡單實(shí)用,有需要的小伙伴參考下
    2015-02-02
  • JavaScript和TypeScript中的void的具體使用

    JavaScript和TypeScript中的void的具體使用

    這篇文章主要介紹了JavaScript和TypeScript中的void的具體使用,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-09-09
  • JavaScript結(jié)合Bootstrap仿微信后臺(tái)多圖文界面管理

    JavaScript結(jié)合Bootstrap仿微信后臺(tái)多圖文界面管理

    這篇文章主要為大家詳細(xì)介紹了js結(jié)合Bootstrap仿微信后臺(tái)多圖文界面管理,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2016-07-07
  • JavaScript實(shí)現(xiàn)的DOM繪制柱狀圖效果示例

    JavaScript實(shí)現(xiàn)的DOM繪制柱狀圖效果示例

    這篇文章主要介紹了JavaScript實(shí)現(xiàn)的DOM繪制柱狀圖效果,涉及javascript數(shù)值計(jì)算及頁面元素屬性動(dòng)態(tài)操作相關(guān)實(shí)現(xiàn)技巧,需要的朋友可以參考下
    2018-08-08
  • 讓iframe框架網(wǎng)頁在任何瀏覽器下自動(dòng)伸縮

    讓iframe框架網(wǎng)頁在任何瀏覽器下自動(dòng)伸縮

    很多朋友都在使用iframe中遇到過不能自動(dòng)隨頁面伸縮,特別是動(dòng)態(tài)讀取頁面的時(shí)候,會(huì)出現(xiàn)滾動(dòng)條,影響美觀,今天研究一下了,發(fā)現(xiàn)了一個(gè)簡單解決的辦法,可以在IE,F(xiàn)IREFOX,OPERA下使用
    2006-08-08
  • JS中解決谷歌瀏覽器記住密碼輸入框顏色改變功能

    JS中解決谷歌瀏覽器記住密碼輸入框顏色改變功能

    這篇文章主要介紹了JS中解決谷歌瀏覽器記住密碼輸入框顏色改變功能,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下
    2017-02-02
  • 微信小程序?qū)崿F(xiàn)樹莓派(raspberry pi)小車控制

    微信小程序?qū)崿F(xiàn)樹莓派(raspberry pi)小車控制

    這篇文章主要為大家詳細(xì)介紹了微信小程序?qū)崿F(xiàn)樹莓派(raspberry pi)小車控制,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2020-02-02

最新評論