aboutsummaryrefslogtreecommitdiffstats
path: root/docs/examples/blogpost.rst
diff options
context:
space:
mode:
Diffstat (limited to 'docs/examples/blogpost.rst')
-rw-r--r--docs/examples/blogpost.rst28
1 files changed, 17 insertions, 11 deletions
diff --git a/docs/examples/blogpost.rst b/docs/examples/blogpost.rst
index 9d762f52..be91913d 100644
--- a/docs/examples/blogpost.rst
+++ b/docs/examples/blogpost.rst
@@ -8,26 +8,32 @@ Blog Posts API
The models
----------
+In this example we're working from two related models:
+
``models.py``
.. include:: ../../examples/blogpost/models.py
:literal:
-URL configuration
------------------
+Creating the resources
+----------------------
+
+We need to create two resources that we map to our two existing models, in order to describe how the models should be serialized.
+Our resource descriptions will typically go into a module called something like 'resources.py'
-``urls.py``
+``resources.py``
-.. include:: ../../examples/blogpost/urls.py
+.. include:: ../../examples/blogpost/resources.py
:literal:
-Creating the resources
-----------------------
+Creating views for our resources
+--------------------------------
-Once we have some existing models there's very little we need to do to create the corresponding resources. We simply create a base resource and an instance resource for each model we're working with.
-django-rest-framework will provide the default operations on the resources all the usual input validation that Django's models can give us for free.
+Once we've created the resources there's very little we need to do to create the API.
+For each resource we'll create a base view, and an instance view.
+The generic views :class:`.ListOrCreateModelView` and :class:`.InstanceModelView` provide default operations for listing, creating and updating our models via the API, and also automatically provide input validation using default ModelForms for each model.
-#``views.py``
+``urls.py``
-#.. include:: ../../examples/blogpost/views.py
-# :literal: \ No newline at end of file
+.. include:: ../../examples/blogpost/urls.py
+ :literal: