如何更改django文件字段中的默认媒体网址?

时间:2018-03-22 13:11:41

标签: django

我正在使用django-sendfile来保护某些文件。

问题是,当文件显示在前端时,它使用的MEDIA_ROOT位置不是文件的实际位置。

Admin leave file link

Frontend leave file link

我想要使用的实际链接(检查权限)是:

http://127.0.0.1:8000/leave/supporting_doc/57

但显示的链接是:

http://127.0.0.1:8000/media/leave/user_2/2018-09-06-logo.png

模型中的字段是:

supporting_doc = models.FileField(
    upload_to=user_leave_directory_path,
    storage=SENDFILE_STORAGE,
    blank=True,
    validators=[FileExtensionValidator(ACCEPTED_FILE_TYPES)]
)

上传到方法会提供相对于MEDIA_ROOT的链接:

def user_leave_directory_path(instance, filename):
    '''Get the user directory for leave supporting document'''
    # file will be uploaded to MEDIA_ROOT/user_<id>/<filename>
    return 'leave/user_'\
        f'{instance.user.id}/{instance.start_date}-{filename}'

0 个答案:

没有答案