のサブフォルダにWagtail文書をアップロードする可能性Amazon S3を使用してDjango-Wagtailメディアファイルを提供しているので、 "restricted"という文書を作成するカスタマイズされた文書クラスを定義する必要があります(あなたがログインしている場合のみアクセス可能)。この文書はS3バケットに「hey!」と言う特殊なアクセス権を持っています。これらのファイルは、この「foo_url」から要求されたにもかかわらず、他の場所からは要求されていない場合、「」私はこれをに限定して、制限されたURLが広がるのを防ぐように考えました。。/documents/
私はそのサブフォルダをどうするかアマゾンを伝える/文書/だけのサブフォルダに格納されるように、このセキレイDocumentクラスを定義しようとしています理由です。
dummy_code_that_doesnt_work:
class RestrictedDocument(Document):
def get_upload_to(self, filename):
folder_name = 'restricted'
filename = self.file.field.storage.get_valid_name(filename)
return os.path.join(folder_name, filename)
"""
Snippet containing restricted documents
"""
@register_snippet
@python_2_unicode_compatible # provide equivalent __unicode__ and __str__ methods on Python 2
class FooSnipet(models.Model):
rectricted_document_1 = models.ForeignKey(
'RestrictedDocument',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+',
)
rectricted_document_2 = models.ForeignKey(
'RestrictedDocument',
null=True,
blank=True,
on_delete=models.SET_NULL,
related_name='+',
)
....
and many more
....
たぶん私はこのすべてを過度に複雑だとやって別の方法があります。どんな提案も大歓迎です!多くのveeeryありがとうございました:)
ご回答いただきありがとうございます。 'Document'ではなく' AbstractDocument'から継承するように編集したいと思うかもしれません。そうでないとdjangoはクラス 'RestrictedDocument'の 'Local field"ファイル "を基底クラスDocumentから同じ名前のフィールドと衝突させます。あなたが予測したようにWagtailAdminの問題のために働かせてください。私がそれを解決することができれば、私はそれを投稿し、otherはWagtailが独自に仕事をするでしょう。とにかくありがとう! –