aboutsummaryrefslogtreecommitdiffstats
path: root/examples
diff options
context:
space:
mode:
authorTom Christie2011-01-28 17:42:57 +0000
committerTom Christie2011-01-28 17:42:57 +0000
commit40f47a9fb31aebd965dce03ae57c036d5360d124 (patch)
tree9e95ee3e500b5c2d8eb4e1adecefaf1d2de47b8a /examples
parent2e9fd9c6b93a77dcf5caa42a4d71b9da2021693f (diff)
downloaddjango-rest-framework-40f47a9fb31aebd965dce03ae57c036d5360d124.tar.bz2
Minor bit of tidy up (all the stuff I noticed when demoing to francis)
Diffstat (limited to 'examples')
-rw-r--r--examples/pygments_api/forms.py52
-rw-r--r--examples/pygments_api/views.py2
-rw-r--r--examples/urls.py1
3 files changed, 5 insertions, 50 deletions
diff --git a/examples/pygments_api/forms.py b/examples/pygments_api/forms.py
index 66446c5b..dc9927e2 100644
--- a/examples/pygments_api/forms.py
+++ b/examples/pygments_api/forms.py
@@ -15,57 +15,11 @@ class PygmentsForm(forms.Form):
The code to be highlighted can be specified either in a text field, or by URL.
We do some additional form validation to ensure clients see helpful error responses."""
- code_url = forms.URLField(required=False, label='Code URL',
- help_text='eg. https://bitbucket.org/tomchristie/flywheel/raw/cc266285d879/flywheel/resource.py')
- code_text = forms.CharField(widget=forms.Textarea, required=False, label='Code Text',
- help_text='Either supply a URL for the code to be highlighted or copy and paste the code text here.')
- title = forms.CharField(required=False, help_text='(Optional)')
+ code = forms.CharField(widget=forms.Textarea, label='Code Text', max_length=1000000,
+ help_text='(Copy and paste the code text here.)')
+ title = forms.CharField(required=False, help_text='(Optional)', max_length=100)
linenos = forms.BooleanField(label='Show Line Numbers', required=False)
lexer = forms.ChoiceField(choices=LEXER_CHOICES, initial='python')
style = forms.ChoiceField(choices=STYLE_CHOICES, initial='friendly')
-
- def clean_code_url(self):
- """Custom field validation.
- Ensure that code URLs really are valid, and return the content they point to in the cleaned_data,
- rather than returning the URL itself."""
- cleaned_data = self.cleaned_data
- url = cleaned_data.get('code_url')
- if not url:
- return ''
-
- try:
- http = httplib.Http('.cache')
- resp, content = http.request(url)
- except:
- raise forms.ValidationError('The URL supplied cannot be reached')
-
- if int(resp.status/100) != 2:
- raise forms.ValidationError('The URL supplied does not return successfully')
- if not content:
- raise forms.ValidationError('The URL supplied returns no content')
-
- return content
-
-
- def clean(self):
- """Custom form validation.
- Ensure that only one of code_url and code_text is set, and return the content of whichever is set in 'code'."""
- cleaned_data = self.cleaned_data
- code_url = cleaned_data.get('code_url')
- code_text = cleaned_data.get('code_text')
-
- if not code_url and not code_text:
- raise forms.ValidationError('Either the URL or the code text must be supplied')
- if code_url and code_text:
- raise forms.ValidationError('You may not specify both the URL and the code text')
-
- if code_url:
- cleaned_data['code'] = code_url
- del cleaned_data['code_url']
- else:
- cleaned_data['code'] = code_text
- del cleaned_data['code_text']
-
- return cleaned_data
diff --git a/examples/pygments_api/views.py b/examples/pygments_api/views.py
index 02f541f3..4493a822 100644
--- a/examples/pygments_api/views.py
+++ b/examples/pygments_api/views.py
@@ -24,7 +24,7 @@ class HTMLEmitter(BaseEmitter):
class PygmentsRoot(Resource):
"""This example demonstrates a simple RESTful Web API aound the awesome pygments library.
- This top level resource is used to create """
+ This top level resource is used to create highlighted code snippets."""
form = PygmentsForm
allowed_methods = anon_allowed_methods = ('POST',)
diff --git a/examples/urls.py b/examples/urls.py
index b1dec13d..48af39de 100644
--- a/examples/urls.py
+++ b/examples/urls.py
@@ -7,6 +7,7 @@ urlpatterns = patterns('',
(r'^pygments-example/', include('pygments_api.urls')),
(r'^blog-post-example/', include('blogpost.urls')),
(r'^object-store-example/', include('objectstore.urls')),
+ (r'^testarchive-example/', include('testarchive.urls')),
(r'^accounts/login/$', 'django.contrib.auth.views.login'),
(r'^accounts/logout/$', 'django.contrib.auth.views.logout'),
(r'^admin/doc/', include('django.contrib.admindocs.urls')),