在python\Lib\site-packages\ckeditor_uploader下面找到views.py文件,修改成如下就可以了
from __future__ import absolute_import, unicode_literals
import inspect
import os
import warnings
import time #新增
import random #新增
from datetime import datetime
from django.conf import settings
from django.http import HttpResponse, JsonResponse
from django.shortcuts import render
from django.utils.html import escape
from django.utils.module_loading import import_string
from django.views import generic
from django.views.decorators.csrf import csrf_exempt
from ckeditor_uploader import utils
from ckeditor_uploader.backends import registry
from ckeditor_uploader.forms import SearchForm
from ckeditor_uploader.utils import storage
from .utils import is_valid_image_extension
def _get_user_path(user):
user_path = ''
# If CKEDITOR_RESTRICT_BY_USER is True upload file to user specific path.
RESTRICT_BY_USER = getattr(settings, 'CKEDITOR_RESTRICT_BY_USER', False)
if RESTRICT_BY_USER:
try:
user_prop = getattr(user, RESTRICT_BY_USER)
except (AttributeError, TypeError):
user_prop = getattr(user, 'get_username')
if callable(user_prop):
user_path = user_prop()
else:
user_path = user_prop
return str(user_path)
def get_upload_filename(upload_name, request):
user_path = _get_user_path(request.user)
# Generate date based path to put uploaded file.
# If CKEDITOR_RESTRICT_BY_DATE is True upload file to date specific path.
if getattr(settings, 'CKEDITOR_RESTRICT_BY_DATE', True):
date_path = datetime.now().strftime('%Y/%m') #去掉/%d
else:
date_path = ''
# Complete upload path (upload_path + date_path).
upload_path = os.path.join(
settings.CKEDITOR_UPLOAD_PATH, user_path, date_path
)
if (getattr(settings, 'CKEDITOR_UPLOAD_SLUGIFY_FILENAME', True) and
not hasattr(settings, 'CKEDITOR_FILENAME_GENERATOR')):
#删除部分 upload_name = utils.slugify_filename(upload_name)
#新增开始
name = upload_name
ext = os.path.splitext(name)[1]
# 文件目录
d = os.path.dirname(name)
# 定义文件名,年月日时分秒随机数
fn = time.strftime('%Y%m%d%H%M%S')
fn = fn + '_%d' % random.randint(0,100)
# 重写合成文件名
upload_name = os.path.join(d, fn + ext)
#新增结束
if hasattr(settings, 'CKEDITOR_FILENAME_GENERATOR'):
generator = import_string(settings.CKEDITOR_FILENAME_GENERATOR)
# Does the generator accept a request argument?
try:
inspect.getcallargs(generator, upload_name, request)
except TypeError:
# Does the generator accept only an upload_name argument?
try:
inspect.getcallargs(generator, upload_name)
except TypeError:
warnings.warn(
"Update %s() to accept the arguments `filename, request`."
% settings.CKEDITOR_FILENAME_GENERATOR
)
else:
warnings.warn(
"Update %s() to accept a second `request` argument."
% settings.CKEDITOR_FILENAME_GENERATOR,
PendingDeprecationWarning
)
upload_name = generator(upload_name)
else:
upload_name = generator(upload_name, request)
return storage.get_available_name(
os.path.join(upload_path, upload_name)
)
只把上半部分修改的这一段发出来了,后面的没有改动部分没发,代码里已经注明了新增,删除的部分,就是修改的地方,个人可根据自己的要求来改动这个地方就可以了。