Lino and Django¶
The differences between Lino and plain Django are visible mainly for the application developer.
But Lino is more than a front end. In fact the current front end is not even the only choice 1. Here are the under the hood differences between Lino and Django.
Lino adds the concept of an central application object while Django is a radically decentralized approach. We believe that without such a central place it is not possible -or at least not efficient- to maintain complex software projects.
Lino is a replacement for Django's admin interface which has obviously not been designed as a base for writing and maintaining collections of reusable customized database applications.
Lino replaces Django's database-stored user groups and permissions system by a system that uses pure Python code objects. This approach is more suitable for defining and maintaining complex applications.
Lino doesn't use django.forms because they are not needed. We believe that this API is "somehow hooked into the wrong place" and forces application developers to write redundant code. Lino replaces Django's forms by the concept of layouts.
Lino prefers Jinja2 templates over the default Django engine to generate its own stuff. For the plain Django part of your application you can use the system of your choice.
Lino adds concepts like Actions, Choosers, ChoiceLists, Workflows, multi-lingual database content, generating printable documents, ...