为了账号安全,请及时绑定邮箱和手机立即绑定

Django FileField,在运行时确定upload_to

Django FileField,在运行时确定upload_to

慕姐4208626 2019-08-15 16:11:29
Django FileField,在运行时确定upload_to我正在尝试设置我的上传,以便如果用户joe上传文件,则转到MEDIA_ROOT / joe,而不是让每个人的文件都转到MEDIA_ROOT。问题是我不知道如何在模型中定义它。以下是目前的情况:class Content(models.Model):     name = models.CharField(max_length=200)     user = models.ForeignKey(User)     file = models.FileField(upload_to='.')所以我想要的不是'。' 作为upload_to,让它成为用户的名字。据我所知,从Django 1.0开始,您可以定义自己的函数来处理upload_to,但该函数不知道用户是谁,所以我有点迷失。谢谢您的帮助!
查看完整描述

3 回答

?
Smart猫小萌

TA贡献1911条经验 获得超7个赞

你可能已经阅读了文档,所以这里有一个简单的例子让它有意义:

def content_file_name(instance, filename):
    return '/'.join(['content', instance.user.username, filename])class Content(models.Model):
    name = models.CharField(max_length=200)
    user = models.ForeignKey(User)
    file = models.FileField(upload_to=content_file_name)

正如您所看到的,您甚至不需要使用给定的文件名 - 如果您愿意,您也可以在upload_to中调用它。


查看完整回答
反对 回复 2019-08-15
  • 3 回答
  • 0 关注
  • 1595 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信