我正在使用django-sendfile
来保护某些文件。
问题是,当文件显示在前端时,它使用的MEDIA_ROOT
位置不是文件的实际位置。
我想要使用的实际链接(检查权限)是:
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}'