How can I list files after they have been uploaded? I want to display them so they can be viewed and downloaded later.
Here is my code.
models.py
class UploadFile(models.Model):
file = models.FileField(upload_to='files/%Y/%m/%d')
forms.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))
No need to get file back from form and save it - just save it using your model. View have to be something like this:
@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))
and after this you can take all uploaded files from your model:
files = [upload_file.file for upload_file in UploadFile.objects.all()]
and show them to user
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.