Benutzerdefinierter Standard-Dateispeicher in Django

9

Ich versuche, einen benutzerdefinierten Dateispeicher zu verwenden (https://bitbucket.org/david/django-storages/wiki/S3Storage). Ich folgte den Anweisungen und legte dies in meine settings.py

%Vor%

Wenn ich default_storage importiere, ist es nicht vom Typ S3BotoStorage. Ich muss den Aufruf von _setup () machen. Aber wenn ich das tue, ist das Feld meines Modells immer noch vom Typ DefaultStorage

%Vor%

Wie kann das Feld meines Modells vom Typ S3BotoStorage sein?

    
CoolGravatar 24.02.2011, 17:25
quelle

1 Antwort

4

Nach meinem Verständnis von Django-Speichern ist die Speicherklasse immer DefaultStorage (es sei denn, Sie haben sie explizit im Modell festgelegt). Es ist in der Klasse _wrapped, die aussehen sollte. Haben Sie versucht, "p.original.storage._wrapped" zu drucken?

Von meiner Seite bekomme ich die gleichen Ergebnisse wie du, aber wenn ich p.original.storage._wrapped drucke, bekomme ich meine benutzerdefinierte Speicherklasse (in meinem Fall).

Wenn Sie sicherstellen möchten, dass der richtige Speicher für Ihr Feld verwendet wird, können Sie den Speicher auch direkt im Modell festlegen. Zum Beispiel:

%Vor%

In diesem Fall können Sie p.file.storage ausführen, und Sie erhalten Ihre benutzerdefinierte Klasse anstelle des DefaultStorage-Wrappers.

    
jphoude 29.04.2011 01:03
quelle

Tags und Links