gpt4 book ai didi

python - 使用django上传文件时如何创建一些年/月/日路径

转载 作者:行者123 更新时间:2023-11-28 22:52:00 32 4
gpt4 key购买 nike

我有这样的模型:

class Obs(models.Model):
date = models.DateTimeField(auto_now_add=False, verbose_name='Date')
description = models.TextField(verbose_name='Description')
content = models.FileField(verbose_name='File', upload_to='%Y/%m/%d')
category = models.ForeignKey(ObsType, related_name='Type', verbose_name='type')
user = models.ForeignKey(User, verbose_name='User')

我需要将“upload_to”路径设置为“日期”字段,但此日期不是当前日期。我应该怎么做?

更新

我用这样的函数解决它:

def get_upload_to(instance, filename):
date = unicode(instance)
date = date.split()[0] # to delete Time
date = date.split('-')
return '%s/%s/%s/%s' % (date[0], date[1], date[2], filename)

在我的例子中,日期表示为 2014-01-04。如果是 2014/01/04 就会出错。

最佳答案

您应该使用自定义方法来指定 upload_to 路径,如下所示:

def get_obs_upload_path(instance, filename):
my_custom_date = datetime.now()
return '%s/%s' % (my_custom_date, filename)

class Obs(models.Model):
date = models.DateTimeField(auto_now_add=False, verbose_name='Date')
description = models.TextField(verbose_name='Description')
content = models.FileField(verbose_name='File', upload_to=get_obs_upload_path)
category = models.ForeignKey(ObsType, related_name='Type', verbose_name='type')
user = models.ForeignKey(User, verbose_name='User')

关于python - 使用django上传文件时如何创建一些年/月/日路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20926823/

32 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com