mirror of
https://github.com/encode/django-rest-framework.git
synced 2025-06-10 00:23:32 +03:00
Added resourceexample, moved simpleexample to modelresourceexample
This commit is contained in:
parent
196c21f376
commit
6ce5b643fb
15
docs/templates/layout.html
vendored
15
docs/templates/layout.html
vendored
|
@ -8,4 +8,19 @@
|
||||||
|
|
||||||
{% block htmltitle %}<title>{% if pagename == 'index' %}Django REST framework{% else %}{{ titleprefix }}{{ title|striptags|e }}{% endif %}</title>{% endblock %}
|
{% block htmltitle %}<title>{% if pagename == 'index' %}Django REST framework{% else %}{{ titleprefix }}{{ title|striptags|e }}{% endif %}</title>{% endblock %}
|
||||||
|
|
||||||
|
{% block extrahead %}
|
||||||
|
{{ super() }}
|
||||||
|
<script type="text/javascript">
|
||||||
|
|
||||||
|
var _gaq = _gaq || [];
|
||||||
|
_gaq.push(['_setAccount', 'UA-18852272-2']);
|
||||||
|
_gaq.push(['_trackPageview']);
|
||||||
|
|
||||||
|
(function() {
|
||||||
|
var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
|
||||||
|
ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
|
||||||
|
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
|
||||||
|
})();
|
||||||
|
|
||||||
|
</script>
|
||||||
|
{% endblock %}
|
||||||
|
|
|
@ -19,5 +19,5 @@ class MyModel(models.Model):
|
||||||
|
|
||||||
@models.permalink
|
@models.permalink
|
||||||
def get_absolute_url(self):
|
def get_absolute_url(self):
|
||||||
return ('simpleexample.views.MyModelResource', (self.pk,))
|
return ('modelresourceexample.views.MyModelResource', (self.pk,))
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
from django.conf.urls.defaults import patterns, url
|
from django.conf.urls.defaults import patterns, url
|
||||||
|
|
||||||
urlpatterns = patterns('simpleexample.views',
|
urlpatterns = patterns('modelresourceexample.views',
|
||||||
url(r'^$', 'MyModelRootResource'),
|
url(r'^$', 'MyModelRootResource'),
|
||||||
url(r'^([0-9]+)/$', 'MyModelResource'),
|
url(r'^([0-9]+)/$', 'MyModelResource'),
|
||||||
)
|
)
|
|
@ -1,5 +1,5 @@
|
||||||
from djangorestframework.modelresource import ModelResource, RootModelResource
|
from djangorestframework.modelresource import ModelResource, RootModelResource
|
||||||
from simpleexample.models import MyModel
|
from modelresourceexample.models import MyModel
|
||||||
|
|
||||||
FIELDS = ('foo', 'bar', 'baz', 'absolute_url')
|
FIELDS = ('foo', 'bar', 'baz', 'absolute_url')
|
||||||
|
|
0
examples/resourceexample/__init__.py
Normal file
0
examples/resourceexample/__init__.py
Normal file
6
examples/resourceexample/urls.py
Normal file
6
examples/resourceexample/urls.py
Normal file
|
@ -0,0 +1,6 @@
|
||||||
|
from django.conf.urls.defaults import patterns, url
|
||||||
|
|
||||||
|
urlpatterns = patterns('resourceexample.views',
|
||||||
|
url(r'^$', 'ExampleResource'),
|
||||||
|
url(r'^(?P<num>[0-9]+)/$', 'AnotherExampleResource'),
|
||||||
|
)
|
35
examples/resourceexample/views.py
Normal file
35
examples/resourceexample/views.py
Normal file
|
@ -0,0 +1,35 @@
|
||||||
|
from django import forms
|
||||||
|
from djangorestframework.resource import Resource
|
||||||
|
from djangorestframework.response import Response, status
|
||||||
|
|
||||||
|
|
||||||
|
class MyForm(forms.Form):
|
||||||
|
foo = forms.BooleanField()
|
||||||
|
bar = forms.IntegerField(help_text='Must be an integer.')
|
||||||
|
baz = forms.CharField(max_length=32, help_text='Free text. Max length 32 chars.')
|
||||||
|
|
||||||
|
|
||||||
|
class ExampleResource(Resource):
|
||||||
|
"""A basic read only resource that points to 3 other resources."""
|
||||||
|
allowed_methods = anon_allowed_methods = ('GET',)
|
||||||
|
|
||||||
|
def get(self, request, auth):
|
||||||
|
return {"Some other resources": [self.reverse(AnotherExampleResource, num=num) for num in range(3)]}
|
||||||
|
|
||||||
|
|
||||||
|
class AnotherExampleResource(Resource):
|
||||||
|
"""A basic GET-able/POST-able resource."""
|
||||||
|
allowed_methods = anon_allowed_methods = ('GET', 'POST')
|
||||||
|
form = MyForm # Optional form validation on input
|
||||||
|
|
||||||
|
def get(self, request, auth, num):
|
||||||
|
"""Handle GET requests"""
|
||||||
|
if int(num) > 2:
|
||||||
|
return Response(status.HTTP_404_NOT_FOUND)
|
||||||
|
return "GET request to AnotherExampleResource %s" % num
|
||||||
|
|
||||||
|
def post(self, request, auth, content, num):
|
||||||
|
"""Handle POST requests"""
|
||||||
|
if int(num) > 2:
|
||||||
|
return Response(status.HTTP_404_NOT_FOUND)
|
||||||
|
return "POST request to AnotherExampleResource %s, with content: %s" % (num, repr(content))
|
|
@ -95,7 +95,9 @@ INSTALLED_APPS = (
|
||||||
'django.contrib.messages',
|
'django.contrib.messages',
|
||||||
#'django.contrib.admin',
|
#'django.contrib.admin',
|
||||||
'djangorestframework',
|
'djangorestframework',
|
||||||
'simpleexample',
|
|
||||||
|
'resourceexample',
|
||||||
|
'modelresourceexample',
|
||||||
'objectstore',
|
'objectstore',
|
||||||
'pygments_api',
|
'pygments_api',
|
||||||
'blogpost',
|
'blogpost',
|
||||||
|
|
|
@ -5,18 +5,28 @@ from djangorestframework.resource import Resource
|
||||||
#admin.autodiscover()
|
#admin.autodiscover()
|
||||||
|
|
||||||
class RootResource(Resource):
|
class RootResource(Resource):
|
||||||
|
"""This is the sandbox for the examples provided with django-rest-framework.
|
||||||
|
|
||||||
|
These examples are here to help you get a better idea of the some of the
|
||||||
|
features of django-rest-framework API, such as automatic form and model validation,
|
||||||
|
support for multiple input and output media types, etc...
|
||||||
|
|
||||||
|
Please feel free to browse, create, edit and delete the resources here, either
|
||||||
|
in the browser, from the command line, or programmatically."""
|
||||||
allowed_methods = anon_allowed_methods = ('GET',)
|
allowed_methods = anon_allowed_methods = ('GET',)
|
||||||
|
|
||||||
def get(self, request, auth):
|
def get(self, request, auth):
|
||||||
return {'simple example': self.reverse('simpleexample.views.MyModelRootResource'),
|
return {'Simple Resource example': self.reverse('resourceexample.views.ExampleResource'),
|
||||||
'pygments example': self.reverse('pygments_api.views.PygmentsRoot'),
|
'Simple ModelResource example': self.reverse('modelresourceexample.views.MyModelRootResource'),
|
||||||
'object store example': self.reverse('objectstore.views.ObjectStoreRoot'),
|
'Object store API (Resource)': self.reverse('objectstore.views.ObjectStoreRoot'),
|
||||||
'blog post example': self.reverse('blogpost.views.BlogPostRoot'),}
|
'A pygments pastebin API (Resource + forms)': self.reverse('pygments_api.views.PygmentsRoot'),
|
||||||
|
'Blog posts API (ModelResource)': self.reverse('blogpost.views.BlogPostRoot'),}
|
||||||
|
|
||||||
|
|
||||||
urlpatterns = patterns('',
|
urlpatterns = patterns('',
|
||||||
(r'^$', RootResource),
|
(r'^$', RootResource),
|
||||||
(r'^simple-example/', include('simpleexample.urls')),
|
(r'^model-resource-example/', include('modelresourceexample.urls')),
|
||||||
|
(r'^resource-example/', include('resourceexample.urls')),
|
||||||
(r'^object-store/', include('objectstore.urls')),
|
(r'^object-store/', include('objectstore.urls')),
|
||||||
(r'^pygments/', include('pygments_api.urls')),
|
(r'^pygments/', include('pygments_api.urls')),
|
||||||
(r'^blog-post/', include('blogpost.urls')),
|
(r'^blog-post/', include('blogpost.urls')),
|
||||||
|
|
Loading…
Reference in New Issue
Block a user