我有自定义存储空间
import os
from django.core.files.storage import Storage
class AlwaysOverwriteFileSystemStorage(Storage):
def get_available_name(self, name):
"""
Directly Returns a filename that's
from what user input.
"""
if self.exists(name):
# Remove the existing file
os.remove(name)
# Return the input name as output
return name
Run Code Online (Sandbox Code Playgroud)
我想知道我应该在哪里放置他的AlwaysOverwriteFileSystemStorage.py文件以及settings.py如何定义DEFAULT_FILE_STORAGE
我的Django根文件夹是/ home/username/webapp
当我放DEFAULT_FILE_STORAGE = 'site.storage.AlwaysOverwriteFileSystemStorage',它返回一个
错误
导入存储模块site.storage时出错:"没有名为storage的模块"
我不熟悉Python/Django,任何帮助将不胜感激.谢谢.
当我将文件提交到 django 服务器并且文件名存在于目录中时,我遇到了问题。Django 不会覆盖该文件,但会在名称末尾添加一些字符。我怎样才能添加字符而不是 Django.
\n\n我的 model.py 看起来像这样
\n\nclass UpLoadFile(models.Model):\n user = models.ForeignKey(User, on_delete=models.CASCADE)\n file = models.FileField()\n uploaded_at = models.DateTimeField(default=timezone.now)\n\n def __str__(self):\n return self.file.name + \' (\' + self.user.username + \')\'\nRun Code Online (Sandbox Code Playgroud)\n\nviews.py 看起来像这样:
\n\n@login_required\ndef home(request):\n if request.method == \'POST\':\n\n if \'upload_file\' in request.POST:\n form = UploadFileForm(request.POST, request.FILES)\n form.instance.user = request.user\n if form.is_valid():\n messages.success(request, \'Datoteka {} je bila uspe\xc5\xa1no dodana\'.format(str(request.FILES["file"])))\n form.save()\n return HttpResponseRedirect(\'/\')\n\n else:\n messages.error(request, \'Datoteke {} ni bilo mogo\xc4\x8de dodati. Preveriti \xc4\x8de datoteka vsebuje podatke.\'\n .format(str(request.FILES["file"])))\n …Run Code Online (Sandbox Code Playgroud)