作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
所以我阅读了文档,结果有点困惑。我有一个这样的模型
class Image(models.Model):
name = models.CharField(max_length=80)
file = models.ImageField(upload_to = 'project_images')
description = models.CharField(max_length=30)
def __unicode__(self):
return self.name
文件上传的处理是通过管理界面完成的,它可以工作,但我需要根据提交上传时出现的其他字段对数据做更多的事情。
基本上当前目录是project_images
我想做的是保存图像时必须将其放在---> project_images/<year>/<month>
.保存在数据库中的文件路径必须反射(reflect)这一点,文件名也必须保存在名称字段中。
我理解这样做背后的逻辑;
我应该在哪里指定它?在模型下有保存方法吗?
很抱歉,如果文档中指定了这一点,但这是文档中让我感到困惑的一个方面。
谢谢
最佳答案
from django.db import models
import datetime
import os
import uuid
# Create your models here.
def get_file_path(instance,filename):
ext=filename.split('.')[-1]
filename="%s.%s" % (uuid.uuid4(),ext)
return os.path.join(instance.directory_string_var,filename)
class Image(models.Model):
file=models.ImageField(upload_to=get_file_path)
now=datetime.datetime.now()
directory_string_var = 'image/%s/%s/%s/'%(now.year,now.month,now.day)
将您的模型更改为上述模型。
这会将您的文件以随机名称保存在文件夹 media/year/month/day 中。
如果你不希望文件名是随机的就注释掉
ext = filename.split('.')[-1] #and
filename="%s.%s" % (uuid.uuid4(),ext)
关于django - 我如何以及在哪里处理来自 django admin 的文件上传?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17398716/
我有以下正则表达式 /[a-zA-Z0-9_-]/ 当字符串只包含从 a 到z 大小写、数字、_ 和 -。 我的代码有什么问题? 能否请您向我提供一个简短的解释和有关如何修复它的代码示例? //var
我是一名优秀的程序员,十分优秀!