0

我正在尝试上传文件。

这是我的模型。

def custom_path(instance, filename):
 return '/'.join(['upload',instance.student.user.username,filename])

class Doc(models.Model):
 uploadtime = models.DateTimeField(auto_now_add=True, blank=True)
 datei = models.FileField(upload_to=custom_path,default='')
 student = models.ForeignKey(Student,related_name='students_file')
 title = models.TextField()
 desc = models.TextField()
 def __unicode__(self):
     return self.title

这是我的views.py

def hochgeladen_danke(request):
 if request.FILES.get('file'):
    student = request.user.get_profile()
    student.students_file.create(datei=request.FILES.get('file'),title='t',desc='t')
    return render_to_response('upload.html',{},context_instance=RequestContext(request))

我的html:

<form action="/hochgeladen_danke/" method="post" enctype="multipart/form-data">
   {% csrf_token %}
   File: <input type="file" name="file"/>
   <button type="submit">upload</button>                
</form>

我的设置.py:

MEDIA_ROOT = os.path.join(PROJECT_PATH, "media")
MEDIA_URL = "/media/"

STATIC_ROOT = os.path.join(PROJECT_PATH, "static")
STATIC_URL = '/static/'

当我尝试上传文件时。它是说:

ImproperlyConfigured at /hochgeladen_danke/ 
/static/ isn't a storage module.

我不知道为什么会这样。我的 custom_path 似乎是正确的。

我的 urls.py:

..
url(r'^hochgeladen_danke/$','hochgeladen_danke',name='hochgeladen_danke'),
)

if settings.DEBUG:
  urlpatterns = patterns('',
  url(r'^media/(?P<path>.*)$', 'django.views.static.serve',
    {'document_root': settings.MEDIA_ROOT, 'show_indexes': True}),
  url(r'', include('django.contrib.staticfiles.urls')),
) + urlpatterns
4

1 回答 1

1

你的 有问题settings.DEFAULT_FILE_STORAGE

您提供的异常来自django.core.files.storage@272,后者又来自default_storage正下方和django.db.models.files@221。在您的视图中调用构造函数,从而引发异常。

于 2013-08-19T20:10:29.093 回答