【问题标题】:upload via admin using FileField in django使用 django 中的 FileField 通过管理员上传
【发布时间】:2012-06-04 18:26:40
【问题描述】:

我有一些很奇怪的东西。我在win7 Django 1.4上。 我有以下 media_root/url 设置:

MEDIA_ROOT = 'c:\project\uploads'
MEDIA_URL = '/media/'

我的 url.py 包括:

    urlpatterns += patterns('', 
    (r'^media/(?P<path>.*)$', 'django.views.static.serve', { 
    'document_root': settings.MEDIA_ROOT})) 

我有一个带有该字段的模型:

    file = models.FileField(upload_to=MEDIA_ROOT, blank = True)

现在,我正在通过管理站点上传文件,文件已成功上传。但是,当通过管理员访问文件时,我看到文件的链接是:

http://127.0.0.1:8000/media/c:\project\uploads\[filename]

我不知道我做错了什么。

【问题讨论】:

    标签: django django-models django-admin


    【解决方案1】:

    我认为你的模型是错误的:

    file = models.FileField(upload_to=MEDIA_ROOT, blank = True)
    

    upload_to 需要一个添加到 MEDIA_ROOT 的相对路径,因此现在它希望文件位于 MEDIA_ROOT/MEDIA_ROOT,这没有任何意义。

    尝试类似:

    file = models.FileField(upload_to='files', blank = True)

    文档:

    FileField.upload_to 将附加到的本地文件系统路径 您的 MEDIA_ROOT 设置来确定 url 属性的值。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-10-31
      • 2011-07-19
      • 1970-01-01
      • 2013-09-07
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多