在Django文件上传中将参数传递给upload_to参数

时间:2017-12-27 06:30:10

标签: python django file-upload

我使用以下帖子在Django上传文件:https://simpleisbetterthancomplex.com/tutorial/2016/08/01/how-to-upload-files-with-django.html

在帖子中,它提到upload_to参数可以是一个返回字符串的可调用对象。在提供的示例中,callable接受两个参数,instance和filename,如下所示:

def user_directory_path(instance, filename):
    # file will be uploaded to MEDIA_ROOT/user_<id>/<filename>
    return 'user_{0}/{1}'.format(instance.user.id, filename)

class MyModel(models.Model):
    upload = models.FileField(upload_to=user_directory_path)

在什么时候我如何将参数传递给upload_to?我在用     form.save(提交= TRUE)

将表单值保存到数据库。任何帮助,将不胜感激。感谢。

1 个答案:

答案 0 :(得分:0)

您不必明确提供任何参数。在模型声明&#39; upload_to&#39;是函数的引用,在调用时自动接收参数。这里&#39;实例&#39;是您的对象的数据库行和&#39;文件名&#39;由django模型生成。