Inspiration

I like templating languages both server-side and client-side ones, while built-in Django template language is not powerful enough and it lacks client-side template language.

What it does

I created the project to easily integrate ready components into Django applications. These include bootstrap forms, read-only display forms and formsets, dynamic AJAX datatables and Django widgets. The code uses Jinja2 templates at server-side and knockout.js templates at client-side.

How I built it

Incremental development with tools like pudb, pycharm, chrome debugger. For real world usage and tests I use two projects, one is large private one, another project is public test / demo used to demonstrate features. It serves as code sample and for continuous integration via CircleCI / TravisCI.

Challenges I ran into

It is not always easy to debug Django middleware / form widgets, it could be even harder to debug knockout.js code due to dynamic generation of DOM data / events.

Accomplishments that I'm proud of

AJAX datatables cover many of Django admin features. Moreover, they are class-based, thus are easier to integrate into user applications. AJAX requests are less HTTP traffic heavy than Django admin traditional requests.

Server-side AJAX datatables code KoGridView shares common ancestry with traditional HTML ListSortingView, which minimizes code duplication and allows to partially re-use features in user applications.

What I learned

Python is somewhat better language than Javascript in general. I miss Python in browsers. Other than that, Django is very nice framework very cool to work with.

What's next for django-jinja-knockout

I need to setup code coverage, update documentation, implement more features such as combined datatable cells (nov 2017).

Share this project:

Updates