Code


Version 266 (modified by adrian, 7 years ago) (diff)

Added link to QuerysetRefactorBranch

Django source-code repository, wiki and bug-report system

Django is available open-source under the BSD license.

Browsing Django's codebase online

Getting involved

Branches in development

Currently, a number of branches of development aim to implement new features in Django. Each of these may or may not be stable, but we encourage you to test them out and give feedback to branch maintainers. Each branch has its own page.

  • newforms-admin: A refactoring of Django's admin site to use the newforms library rather than automatic manipulators, allowing for additional customization of admin-site functionality.
  • queryset-refactor: A refactoring of the way queries are constructed in Django's database layer.
  • ModelInheritance: Write-up discussing how inheritance/subclassing of models should work. Currently this is not implemented in the development version of Django, so if you need model subclassing stick to one of the older stable releases or use workarounds like one-to-one relationships.
  • SchemaEvolution: This is a new feature, under development as a project for the 2006 Summer of Code.
  • RowLevelPermissions: Currently Django's permission system only works at the level of an entire model -- e.g., user "Bob" has access to add flatpages and edit users. This Summer of Code project will extend the permission system to be much more fine-grained, so permissions will be able to be assigned per object instead of per model (so, for example, user "Bob" could be given permission to edit only flatpage number 24 and user number 12, instead of all flatpages and all users).
  • GenericAuthorization: A more flexible authorization system for Django. The new system should allow for ACL's, role-based systems, and Django's current model-level permissions.
  • FullHistory: A "full content history" implementation with compare, revert, etc. A SoC 2006 project.
  • TextIndexingAbstractionLayer: An abstraction layer for full-text indexing and search engines such as Lucene, Xapian, and Hyper Estraier. Also known as Merquery, this Summer of Code project will most likely be placed in contrib.search.
  • GeoDjango: A branch for building GIS-enabled web applications. Includes geometry-related fields and an interface for using Django's ORM with a spatial database (currently only PostGIS).
  • Generic relations: a "generic foreign key" feature is currently under development, but not yet completed. There is no support for it yet in the admin application, and it is probably unwise to attempt to use it in a production application.

We are discouraging the creation of new branches inside the Django repository in the future; if you'd like to work on a major new contribution to Django, we encourage you to set up a new "branch" elsewhere and let the Django-developers mailing list know about it. One easy way to do this is via Mercurial, a distributed version control system; Tom Tobin has set up a Mercurial repository mirroring Django's trunk at http://hg.korpios.com/django.trunk.

Descriptions of major changes to the codebase

Under discussion

More Django resources

See the Django resources page for a cornucopia of unofficial articles, code samples and other information contributed by the community.