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).
Log in or sign up for Devpost to join the conversation.