Commit 18b660ab authored by PkSM3's avatar PkSM3

[UPDATE] form-valid for file-name length

parent 258b5220
...@@ -63,6 +63,8 @@ urlpatterns = patterns('', ...@@ -63,6 +63,8 @@ urlpatterns = patterns('',
url(r'^nodeinfo/(\d+)$', views.nodeinfo), url(r'^nodeinfo/(\d+)$', views.nodeinfo),
url(r'^tests/mvc$', views.tests_mvc), url(r'^tests/mvc$', views.tests_mvc),
url(r'^tests/mvc-listdocuments$', views.tests_mvc_listdocuments), url(r'^tests/mvc-listdocuments$', views.tests_mvc_listdocuments),
url(r'^formexample/$' , views.formexample )
) )
......
...@@ -9,7 +9,7 @@ from node.models import Language, ResourceType, Resource, \ ...@@ -9,7 +9,7 @@ from node.models import Language, ResourceType, Resource, \
Node, NodeType, Node_Resource, Project, Corpus, \ Node, NodeType, Node_Resource, Project, Corpus, \
Ngram, Node_Ngram, NodeNgramNgram, NodeNodeNgram Ngram, Node_Ngram, NodeNgramNgram, NodeNodeNgram
from node.admin import CorpusForm, ProjectForm, ResourceForm from node.admin import CorpusForm, ProjectForm, ResourceForm, CustomForm
from django.contrib.auth.models import User from django.contrib.auth.models import User
...@@ -150,6 +150,44 @@ def projects(request): ...@@ -150,6 +150,44 @@ def projects(request):
'projects': projects 'projects': projects
}) })
# def formexample(request):
# print("my first form")
# return render(request, 'formexample.html', {"bar":"foo"} )
# for formexample.html
def handle_uploaded_file(f):
with open('somefilename', 'wb+') as destination:
for chunk in f.chunks():
destination.write(chunk)
# for formexample.html
def formexample(request):
# if this is a POST request we need to process the form data
if request.method == 'POST':
# create a form instance and populate it with data from the request:
form = CustomForm(request.POST, request.FILES)#NameForm(request.POST)
# check whether it's valid:
if form.is_valid():
# process the data in form.cleaned_data as required
# ...
# redirect to a new URL:
name = form.cleaned_data['name']
thefile = form.cleaned_data['file']
handle_uploaded_file(request.FILES['file'])
return render(request, "tests/formexample.html" , {'form':form , 'msg':("form received! "+name)})
# if a GET (or any other method) we'll create a blank form
else:
form = CustomForm()
return render(request, 'tests/formexample.html', {'form': form} )
def project(request, project_id): def project(request, project_id):
''' '''
This view represents all corpora in a panoramic way. This view represents all corpora in a panoramic way.
......
...@@ -92,6 +92,43 @@ class ResourceForm(ModelForm): ...@@ -92,6 +92,43 @@ class ResourceForm(ModelForm):
model = Resource model = Resource
exclude = ['user', 'guid', 'digest'] exclude = ['user', 'guid', 'digest']
# for formexample.html
from django import forms
from django.utils.translation import ugettext_lazy as _
class CustomForm(forms.Form):
name = forms.CharField( label='Your name', max_length=5 )
file = forms.FileField()
# Description: clean_file()
"""
* file_.content_type - list containing allowed content_types. Example: ['application/pdf', 'image/jpeg']
* len(file_) - a number indicating the maximum file size allowed for upload.
2.5MB - 2621440
5MB - 5242880
10MB - 10485760
20MB - 20971520
50MB - 5242880
100MB 104857600
250MB - 214958080
500MB - 429916160
"""
def clean_file(self):
file_ = self.cleaned_data.get('file')
#Filename length
if len(file_.name)>30:
raise forms.ValidationError(_('Come on dude, name too long.'))
#File size
if len(file_)>104857600:
raise forms.ValidationError(_('File to heavy! (<100MB svp mec).'))
## File type:
# if file_.content_type == "application/zip":
# raise forms.ValidationError(_('We need a zip pls.'))
return self.cleaned_data.get('file', '')
class CorpusForm(ModelForm): class CorpusForm(ModelForm):
#parent = ModelChoiceField(EmptyQuerySet) #parent = ModelChoiceField(EmptyQuerySet)
def __init__(self, *args, **kwargs): def __init__(self, *args, **kwargs):
...@@ -99,12 +136,6 @@ class CorpusForm(ModelForm): ...@@ -99,12 +136,6 @@ class CorpusForm(ModelForm):
self.request = kwargs.pop('request', None) self.request = kwargs.pop('request', None)
super(CorpusForm, self).__init__(*args, **kwargs) super(CorpusForm, self).__init__(*args, **kwargs)
parent_type = NodeType.objects.get(name="Project") parent_type = NodeType.objects.get(name="Project")
#parent_type = NodeType.objects.get(name=self._parent_nodetype_name)
# self.fields['parent'].queryset = Node.objects.filter(
# user_id=self.request.user.id,
# type_id=parent_type.id
# )
#self.fields['language'].queryset = Language.objects.filter(implemented=1)
except Exception as error: except Exception as error:
print("Error with", error) print("Error with", error)
......
<html>
<body>
<form action="/formexample/" enctype="multipart/form-data" method="post">
{% csrf_token %}
{{ form }}
<input type="submit" value="OK">
</form>
{% if msg %}
<p>Response: {{msg}}</p>
{% endif %}
</body>
</html>
\ No newline at end of file
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment