欧美一区二区三区老妇人-欧美做爰猛烈大尺度电-99久久夜色精品国产亚洲a-亚洲福利视频一区二区

Django中刪除upload_to文件的方法-創(chuàng)新互聯(lián)

這篇文章給大家分享的是有關(guān)Django中刪除upload_to文件的方法的內(nèi)容。小編覺(jué)得挺實(shí)用的,因此分享給大家做個(gè)參考,一起跟隨小編過(guò)來(lái)看看吧。

網(wǎng)站建設(shè)哪家好,找成都創(chuàng)新互聯(lián)公司!專注于網(wǎng)頁(yè)設(shè)計(jì)、網(wǎng)站建設(shè)、微信開發(fā)、小程序制作、集團(tuán)企業(yè)網(wǎng)站建設(shè)等服務(wù)項(xiàng)目。為回饋新老客戶創(chuàng)新互聯(lián)還提供了彭州免費(fèi)建站歡迎大家使用!

新版Django在admin后臺(tái)直接刪除一條數(shù)據(jù)時(shí),file = models.FileField(upload_to=‘file')上傳的文件并不會(huì)刪除,以下為解決方法:

在model.py加入:

from django.db.models.signals import pre_delete
from django.dispatch.dispatcher import receiver
@receiver(pre_delete, sender=AddDateModel)
def mymodel_delete(sender, instance, **kwargs):
  # Pass false so FileField doesn't save the model.
  instance.file.delete(False)

補(bǔ)充知識(shí):django之重寫FileField字段的保存實(shí)例

重寫FileField字段的保存,以重命名為例

settings.py添加配置

settings.py中末尾添加配置如下,指定指向的操作文件中的類:

# 文件上傳重寫
DEFAULT_FILE_STORAGE = "app.customfilefield.storage.FileStorage"

添加FileStorage

app應(yīng)用下添加python包c(diǎn)ustomfilefield,注意有init.py文件,customfilefield下創(chuàng)建py文件storage.py,文件內(nèi)容為:

storage.py

# -*-coding:utf-8 -*-
from django.core.files.storage import FileSystemStorage
from django.http import HttpResponse
from django.conf import settings
import os, time, random
from app import utils
 
class FileStorage(FileSystemStorage):
  def __init__(self, location=settings.MEDIA_ROOT, base_url=settings.MEDIA_URL):
    #初始化
    super(FileStorage, self).__init__(location, base_url)
 
  #重寫 _save方法
  def _save(self, name, content):
    #文件擴(kuò)展名
    ext = os.path.splitext(name)[1]
    #文件目錄
    d = os.path.dirname(name)
    # 定義文件名,源文件名,避開系統(tǒng)定義的隨機(jī)字符串追加,所以避開不用name字段
    end = utils.find_last(str(content), ".")
    filename = ""
    if end != -1:
      filename = str(content)[:end]
    # 定義文件名,年月日時(shí)分秒隨機(jī)數(shù)
    fn = time.strftime("%Y%m%d%H%M%S")
    fn = fn + "_%d" % random.randint(0,100)
    #重寫合成文件名
    name = os.path.join(d, filename + fn + ext)
    #調(diào)用父類方法
    return super(FileStorage, self)._save(name, content)

utils.py

# 獲取字符串中指定字符最后一次出現(xiàn)的位置
def find_last(string,str):
  last_position=-1
  while True:
    position=string.find(str,last_position+1)
    if position==-1:
      return last_position
    last_position=position

如此,最后上傳的文件名為原文件名加上年月日時(shí)分秒加上0-100的隨機(jī)數(shù)保存,效果如下:

Django中刪除upload_to文件的方法

感謝各位的閱讀!關(guān)于“Django中刪除upload_to文件的方法”這篇文章就分享到這里了,希望以上內(nèi)容可以對(duì)大家有一定的幫助,讓大家可以學(xué)到更多知識(shí),如果覺(jué)得文章不錯(cuò),可以把它分享出去讓更多的人看到吧!

本文名稱:Django中刪除upload_to文件的方法-創(chuàng)新互聯(lián)
網(wǎng)頁(yè)URL:http://chinadenli.net/article16/deppgg.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供Google、網(wǎng)站維護(hù)定制開發(fā)、網(wǎng)站設(shè)計(jì)公司、全網(wǎng)營(yíng)銷推廣、動(dòng)態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

成都做網(wǎng)站
亚洲a级一区二区不卡| 日韩精品在线观看一区| 成人精品国产亚洲av久久| 日本一区二区三区久久娇喘| 日本av在线不卡一区| 久久99这里只精品热在线| 日本在线不卡高清欧美 | 国产精品欧美激情在线| 日本美国三级黄色aa| 精品国产亚洲一区二区三区| 亚洲天堂精品在线视频| 欧美日韩精品久久第一页| 亚洲国产av精品一区二区| 激情丁香激情五月婷婷| 一区二区欧美另类稀缺| 婷婷伊人综合中文字幕| 欧美美女视频在线免费看| 精品伊人久久大香线蕉综合| 好吊日在线观看免费视频| av中文字幕一区二区三区在线| 美女露小粉嫩91精品久久久| 视频在线播放你懂的一区| 国产免费观看一区二区| 暴力三级a特黄在线观看| 精品日韩av一区二区三区| 欧美一区二区三区性视频| 视频一区中文字幕日韩| 欧美午夜国产在线观看| 午夜精品一区免费视频| 亚洲清纯一区二区三区| 欧美尤物在线观看西比尔| 国产精品一区二区不卡中文| 不卡视频免费一区二区三区| 日韩精品一级一区二区| 亚洲综合香蕉在线视频| 亚洲清纯一区二区三区| 亚洲精品国产主播一区| 色婷婷成人精品综合一区| 99久久精品午夜一区| 免费在线播放不卡视频| 欧美精品日韩精品一区|