2014-05-19 5 views
0

파일을 업로드 한 후 어떻게 나열 할 수 있습니까? 나중에 볼 수 있고 다운로드 할 수 있도록 디스플레이하고 싶습니다.django에 업로드 된 파일 나열

여기 내 코드입니다.

models.py 다시 양식에서 파일을 얻을하고 저장 필요가 없습니다

class UploadFileForm(forms.ModelForm): pass 

class Meta: 
    model = UploadFile 

views.py

@login_required(login_url='/accounts/login/') 
def home(request): 
    if request.method == 'POST': 
     form = UploadFileForm(request.POST, request.FILES) 
     if form.is_valid(): 
      new_file = UploadFile(file = request.FILES['file']) 
      new_file.save() 
      return HttpResponseRedirect(reverse('main:home')) 
    else: 
     form = UploadFileForm() 
     data = {'form': form} 
     return render_to_response('upload.html', data, 
            context_instance=RequestContext(request))  

답변

0

에게

class UploadFile(models.Model): 
    file = models.FileField(upload_to='files/%Y/%m/%d') 

forms.py - 다만 사용하여 저장을 귀하의 모델. 보기는 다음과 같이해야 :

@login_required(login_url='/accounts/login/') 
    def home(request): 
     if request.method == 'POST': 
     form = UploadFileForm(request.POST, request.FILES) 
     if form.is_valid(): 
      form.save() # saving model instance 
      return HttpResponseRedirect(reverse('main:home')) 
     else: 
      form = UploadFileForm() 

     data = {'form': form} 
     return render_to_response('upload.html', data, context_instance=RequestContext(request)) 

이 후에는 모델에서 모든 업로드 된 파일을 수행 할 수 있습니다

files = [upload_file.file for upload_file in UploadFile.objects.all()] 

를 그리고 난 이런 짓을 사용자

+0

에게 보여하지만 나가서 설명하자면 NameError를 말한다 : name 'UploadFiles'가 정의되어 있지 않습니다. –

+0

또는 'UploadFiles'가 아닌 'UploadFiles'만 입력했거나 모델에서 UploadFile을 가져 오지 않았습니다. – zymud

+0

가져 오기 오류가 사라졌지만 가져 오지 않았습니다. 내가 업로드 한 모든 파일은 upload.htm에 일부 파일을 넣어야합니다. 난 일할 수있게 –

관련 문제