5

我上傳方法在管理/網址已經問題:嘗試訪問「/媒體/上傳/

在我的設置:

# Absolute filesystem path to the directory that will hold user-uploaded files. 
# Example: "/var/www/example.com/media/" 
MEDIA_ROOT = os.path.join(PROJECT_PATH, "media") 

# URL that handles the media served from MEDIA_ROOT. Make sure to use a 
# trailing slash. 
# Examples: "http://example.com/media/", "http://media.example.com/" 
MEDIA_URL = '/media/' 

# Absolute path to the directory static files should be collected to. 
# Don't put anything in this directory yourself; store your static files 
# in apps' "static/" subdirectories and in STATICFILES_DIRS. 
# Example: "/var/www/example.com/static/" 
STATIC_ROOT = '' 

# URL prefix for static files. 
# Example: "http://example.com/static/", "http://static.example.com/" 
STATIC_URL = '/static/' 

# Additional locations of static files 
STATICFILES_DIRS = (
    os.path.join(PROJECT_PATH, "static"), 
) 

# List of finder classes that know how to find static files in 
# various locations. 
STATICFILES_FINDERS = (
    'django.contrib.staticfiles.finders.FileSystemFinder', 
    'django.contrib.staticfiles.finders.AppDirectoriesFinder', 
# 'django.contrib.staticfiles.finders.DefaultStorageFinder', 
) 

而且在我的LMS/models.py

MEDIA_TYPES = (
    ('Videos', 'Videos'), 
    ('Photos', 'Photos'), 
    ('PDF', 'PDF'), 
) 


class LessonFile(models.Model): 
    """ 
    The files for every lessons 
    """ 
    lesson = models.ForeignKey(Lesson) 
    documents = models.FileField(upload_to='/media/uploads/lms/lessons/') 
    title = models.CharField(max_length=255) 
    media_type = models.CharField(max_length=255, choices=MEDIA_TYPES) 

    def __unicode__(self): 
     return self.lesson 

我管理/當我嘗試保存文件(通過上傳方式):

嘗試訪問「/媒體/上傳/ LMS /經驗/ XXXX。 pdf'被拒絕。

回答

0

嘗試刪除upload_to參數中的前導斜槓。

class LessonFile(models.Model): 
    ... 
    documents = models.FileField(upload_to='uploads/lms/lessons/') 
    ... 

更新:在upload_to參數中刪除多餘的media目錄。

+0

並且這會將文檔上傳到PROJECT_PATH/media/media/uploads/lms/lessons /(注意重複的'media') –

+0

確實,更新了它。 –