add simple upload form test by adding its management in django ex

This commit is contained in:
benoitc 2010-02-28 21:43:34 +01:00
parent c2f12a4977
commit d50420848e
2 changed files with 15 additions and 3 deletions

View File

@ -1,7 +1,7 @@
{% extends "base.html" %} {% extends "base.html" %}
{% block content %} {% block content %}
<form method="post"> <form method="post" enctype='multipart/form-data'>
<table> <table>
{{ form.as_table }} {{ form.as_table }}
</table> </table>
@ -12,5 +12,6 @@
{% if subject %} {% if subject %}
<p><strong>subject:</strong><br>{{ subject}}</p> <p><strong>subject:</strong><br>{{ subject}}</p>
<p><strong>message:</strong><br>{{ message }}</p> <p><strong>message:</strong><br>{{ message }}</p>
<p><strong>size:</strong><br>{{ size }}</p>
{% endif %} {% endif %}
{% endblock content %} {% endblock content %}

View File

@ -1,22 +1,32 @@
# Create your views here. # Create your views here.
import os
from django import forms from django import forms
from django.shortcuts import render_to_response from django.shortcuts import render_to_response
import tempfile
class MsgForm(forms.Form): class MsgForm(forms.Form):
subject = forms.CharField(max_length=100) subject = forms.CharField(max_length=100)
message = forms.CharField() message = forms.CharField()
f = forms.FileField()
def home(request): def home(request):
subject = None subject = None
message = None message = None
size = 0
if request.POST: if request.POST:
form = MsgForm(request.POST) form = MsgForm(request.POST, request.FILES)
print request.FILES
if form.is_valid(): if form.is_valid():
subject = form.cleaned_data['subject'] subject = form.cleaned_data['subject']
message = form.cleaned_data['message'] message = form.cleaned_data['message']
f = request.FILES['f']
tmp = tempfile.TemporaryFile()
for chunk in f.chunks():
tmp.write(chunk)
size = int(os.fstat(tmp.fileno())[6])
else: else:
form = MsgForm() form = MsgForm()
@ -24,7 +34,8 @@ def home(request):
return render_to_response('home.html', { return render_to_response('home.html', {
'form': form, 'form': form,
'subject': subject, 'subject': subject,
'message': message 'message': message,
'size': size
}) })