Introduction into Django

What is Django?

Django is a high-level Python web framework that comes with most of the tools you need to build web applications right out of the box. It includes an ORM, template system, form handling, authentication, and a lot more. The idea is to let developers focus on their application logic instead of writing the same plumbing code over and over again.

This BalderHub closes the loop and provides ready-to-use features and test scenarios for writing integration/e2e tests with the same speed.

One of Django’s most practical features is the admin interface. It automatically creates a web-based management area for your data models. You get list views where you can browse, search, filter and sort records, plus dedicated forms for adding or editing single entries. The admin knows how to deal with relationships like foreign keys and many-to-many fields, supports custom actions, and comes with a permission system so you can control who is allowed to do what.

About this BalderHub package

This BalderHub package provides different features for testing django applications, specially the admin area and the data management flows around it. The page objects and CRUD helpers are written to match how the admin actually renders its forms and processes input.

Ready to use Page Objects

This package comes with ready-made page objects that map directly to the mostly used Django admin pages:

  • the login page

  • the main admin index

  • change-list views for browsing multiple records

  • change-form views for editing single entries

Find examples here.

Ready to use CRUD features for the admin area

On top of that it integrates tightly with balderhub-crud. A set of setup features and field callbacks make the common admin form elements (text fields, text areas, dates, foreign keys, many-to-many relations) work out of the box so you do not need to write CRUD features by yourself.

Find examples here.

Data Environment from Django Fixtures

The package also offers small utilities that load Django fixture files into the test database. This gives you a fast way to seed realistic data for your scenarios without writing repetitive setup code.

Find an example here.