我需要在我的html代码中显示文件大小以及视图和模型的更改。请帮助我这样做。
views.py 这是我的视图代码。在上传时更改显示文件大小
def index(request):
response = TemplateResponse(request, 'login.html', {})
return response
def login(request, username, password):
user = username[:-1]
for i in AppUser.objects.all():
if ( user == i.username and password == i.password ):
return list(request)
else:
return index(request)
def list(request):
# Handle file upload
print "im getting in"
if request.method == 'POST':
form = DocumentForm(request.POST, request.FILES)
if form.is_valid():
newdoc = Document(docfile = request.FILES['docfile'],created_at = datetime.datetime.now())
newdoc.save()
# Redirect to the document list after POST
return HttpResponseRedirect(reverse('cloudStorageManager.views.list'))
else:
print "else"
form = DocumentForm() # A empty, unbound form
# Load documents for the list page
documents = Document.objects.all()
# Render list page with the documents and the form
return render_to_response('list.html',{'documents': documents, 'form': form, 'created_at': datetime.datetime.now()},context_instance=RequestContext(request))
models.py 显示文件大小的属性
class Document(models.Model):
docfile = models.FileField(upload_to='documents')
created_at=models.DateTimeField(auto_now_add=True , blank=True)
list.html 用于在上传时显示文件大小的HTML代码
{% for document in documents %}
<tr>
<td>
<input type="checkbox" class="case" id="chk{{forloop.counter}}" value="{{ document.docfile.name }}">
</td>
<td>{{ document.docfile.name }} {{ document.created_at }}</td>
<td><a href="{{ document.docfile.url }}" target="_blank" title="Download"><button class="btn btn-success btn-flat"><span class="glyphicon glyphicon-cloud-download"> </span> Download</button></a></td>
<td>
答案 0 :(得分:0)
答案 1 :(得分:0)
您可以知道form.py文件中的大小并验证上传的文件。
class DOcumentForm(...):
...
docfile = forms.FileField(...)
...
def clean_docfile(self):
current_size = self.cleaned_data['docfile'].size
if current_size < 2621440 # size in bytes:
return self.cleaned_data['docfile']
else:
raise forms.ValidationError('Max 2.5 MB allowed. Current size is {0}'.format(current_size))