| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- ============
- Coding Style
- ============
-
- General
- -------
-
- Please follow these conventions while remaining sensible:
-
- * `PEP8 -- Style Guide for Python Code <http://www.python.org/dev/peps/pep-0008/>`_
- * `PEP257 -- Docstring Conventions <http://www.python.org/dev/peps/pep-0257/>`_
- * `Django Coding Style <http://docs.djangoproject.com/en/dev/internals/contributing/writing-code/coding-style/>`_
-
- `Code Like a Pythonista`_ is recommended reading.
-
- .. _Code Like a Pythonista: http://python.net/~goodger/projects/pycon/2007/idiomatic/handout.html
-
- URLs
- ----
-
- * List pages should use plurals; e.g. ``/products/``, ``/notifications/``
-
- * Detail pages should simply be a PK/slug on top of the list page; e.g.
- ``/products/the-bible/``, ``/notifications/1/``
-
- * Create pages should have 'create' as the final path segment; e.g.
- ``/dashboard/notifications/create/``
-
- * Update pages are sometimes the same as detail pages (i.e., when in the
- dashboard). In those cases, just use the detail convention, eg
- ``/dashboard/notifications/3/``. If there is a distinction between the detail
- page and the update page, use ``/dashboard/notifications/3/update/``.
-
- * Delete pages; e.g., ``/dashboard/notifications/3/delete/``
-
- View class names
- ----------------
-
- Classes should be named according to::
-
- '%s%sView' % (class_name, verb)
-
- For example, ``ProductUpdateView``, ``OfferCreateView`` and
- ``PromotionDeleteView``. This doesn't fit all situations, but it's a good basis.
-
- Referencing managers
- --------------------
-
- Use ``_default_manager`` rather than ``objects``. This allows projects to
- override the default manager to provide domain-specific behaviour.
|