Django Traversal 0.3
====================

Django Trversal - библиотека для создания контексто-зависимых и иерархических приложений

Реализует паттерн MVRT (Model View Resource Template) где за структуру данных отвечает Model, за взаимодействие с пользователем View, за отображения - Template, а за бизнес-логику Resource.

Преимущества применения django-traversal:

* Структура приложения становится более определённой, решается проблемма разростания представлений;
* Небольшие ресурсы легко отлаживать и тестировать, каждый ресурс работает со своей моделью данных, так-что такая структура отлично масштабируется горизонтально;
* Иерархический доступ к ресурсам позволяет без труда реализовать Access Control List или ACL — список контроля доступа, который определяет, кто или что может получать доступ к конкретному объекту, и какие именно операции разрешено или запрещено этому субъекту проводить над объектом.
* Появляются большие возможности по формированию человеко-понятных урл (ЧПУ)

Requirements
------------

* Python 2.6+
* Django 1.4.5+


Установка
---------

    pip install django-traversal


Настройка
---------

1. Добавьте traversal в список установленных приложений:

    INSTALLED_APPS = (
        'traversal',
        ***
    )


2. В файле resources.py, в вашем приложение, создайте корневой ресурс - класс, потомок traversal.resource.Resource. После чего в настройках, добавьте путь к вашему корневому ресурсу:

    ROOT = 'your_app.resources.RootRecource'


3. В файлах views.py ваших приложений, создайте фабрики построения путей - класс, потомок traversal.traverse.TraverseFactory, определите в данном классе app_resource_tree:

        app_resource_tree = {
           'RootResource': {"": index_view},
           'PostDetailResource': {"": some_view,
                                  "view_slug_in_url": another_view},
        }
  

4. После чего в настройках, добавьте список путей к каждой из ваших фабрик построения путей:

    TRAVERSE_FACTORIES = (
        'your_app.views.YourFactory',
    )

На этом настройка завершена, можно приступать к реализации архитектуры вашего приложения, 

Пример приложения на DjangoTraversal:
https://bitbucket.org/whitemaster/django-traversal-blogs