2010-09-02 11 views
13

Dosyaları hala django projemdeki bir yola yüklemek istiyorum, ancak benim MEDIA_ROOT yolunda.MEDIA_ROOT yolu içinde olmayan Django yükleme dosyası bana Şüpheli Hata iletisi veriyor

Bunu yapmaya çalıştığımda SuspiciousOperation hatası alıyorum. Ben tarayıcı üzerinden erişilebilir şekilde yüklüyorum dosyaları istemiyoruz ve benim MEDIA_ROOT yoldur çünkü

MEDIA_ROOT = os.path.join(os.path.dirname(__file__), 'static_serve') 
UPLOAD_DIR = os.path.join(os.path.dirname(__file__), 'uploads') 

Bunu yapmamın: ayarlarım dosyasında tanımlanan İşte

yollardır.

Bu hatayı nasıl elde ettiğimi (düzeltmeyi) herhangi bir fikri olan var mı?

+0

Web sunucusunu belirli bir yönetmene genel olarak yayınlamak için yasaklayabilirsiniz. MEDIA_ROOT altında. –

+0

Şu anda test sunucusunu kullanıyorum ... Windows XP'de. Bunu nasıl yapacağından da emin değilim. – imns

+0

Geliştirme sunucusunun yapabileceğini sanmıyorum, ancak herhangi bir üretim hazır web sunucusu dosyalara erişimi sınırlayabilmelidir. [Burada] (http://httpd.apache.org/docs/2.0/misc/security_tips.html#protectserverfiles) örneğin bunu yapmak için Apache yoludur. –

cevap

27

Evet there is a way:

Dokümanlar

: Örneğin

, mağaza ne olursa olsun sizin MEDIA_ROOT ayarının /medya/fotoğrafların altında yüklediğiniz dosyalara olacak Aşağıdaki kodu:

from django.db import models 
from django.core.files.storage import FileSystemStorage 

fs = FileSystemStorage(location='/media/photos') 

class Car(models.Model): 
    ... 
    photo = models.ImageField(storage=fs) 
+1

+1 Bu bilmeye değer. Çok kötü OP buna en iyi cevabı vermeyecektir. – hughdbrown

+0

Aynı problem vardı. Sizin (ve doktorların) dediğiniz şeyi yaptım ve şu istisnayı elde ettim 'FileFields bir "upload_to" özniteliği gerektirir.' Bütün bloğu buraya yapıştırdım: http://dpaste.com/hold/533577/ Herhangi bir fikir var mı? – xpanta

+1

Sadece upload_to'yu konumla aynı değer olarak ekleyin. – Tom

İlgili konular