Django 可以将摇摆文件上载到/documents的子文件夹/

Django 可以将摇摆文件上载到/documents的子文件夹/,django,media,wagtail,Django,Media,Wagtail,我正在通过AmazonS3为我的Django Wagtail媒体文件提供服务,现在我需要定义一个定制的文档类来创建“受限”文档(只有在登录时才可访问)。这些文档将有一个特殊的访问权限,它会对我的S3 bucket说:“嘿!如果从这个“foo_url”请求这些文件,那么就发送它们吧,而不是从其他任何地方”,因为它们将只显示给登录的用户。我想到这一点是为了防止受限制的URL扩展 这就是为什么我试图将这个摇摆文档类定义为存储在/documents/的子文件夹中,并告诉Amazon如何处理该子文件夹 无

我正在通过AmazonS3为我的Django Wagtail媒体文件提供服务,现在我需要定义一个定制的文档类来创建“受限”文档(只有在登录时才可访问)。这些文档将有一个特殊的访问权限,它会对我的S3 bucket说:“嘿!如果从这个“foo_url”请求这些文件,那么就发送它们吧,而不是从其他任何地方”,因为它们将只显示给登录的用户。我想到这一点是为了防止受限制的URL扩展

这就是为什么我试图将这个摇摆文档类定义为存储在/documents/子文件夹中,并告诉Amazon如何处理该子文件夹

无效的伪代码:


也许我把这一切都复杂化了,还有另一种方法。欢迎提出任何建议!非常感谢:)

文档
模型不支持像图像那样的
get\u upload\u to
方法。但是,从Django 1.10开始,可以覆盖
抽象文档
文件
字段:

from wagtail.wagtaildocs.models import AbstractDocument

class RestrictedDocument(AbstractDocument):
    file = models.FileField(upload_to='restricted', verbose_name=_('file'))
不过,我不确定这会有多大帮助-Wagtail admin中处理文档上传的视图无法知道它们应该通过
RestrictedDocument
模型而不是默认文档类保存文档


在Wagtail中实现文档的视图限制目前正在进行中(,)。

非常感谢您的回答。您可能希望将其编辑为继承自
AbstractDocument
而不是
Document
,否则django将在类“RestrictedDocument”中大叫
本地字段“file”,与基类“Document”中同名字段冲突。
由于您预测的WagtailAdmin问题,我无法使其工作,如果我能解决这个问题,我会把它贴出来,其他人会自己动手。无论如何谢谢你!
from wagtail.wagtaildocs.models import AbstractDocument

class RestrictedDocument(AbstractDocument):
    file = models.FileField(upload_to='restricted', verbose_name=_('file'))