django-beam provides you with a set of views, templates, and integrations for the most common CRUD applications. It aims to offer the functionality of Django's own admin but in a way that integrates seamlessly with your frontend code.
- CRUD operations based on class-based views
- Easily extensible
- Extensions for common use cases and popular third-party packages
The full documentation can be found at https://django-beam.readthedocs.io/en/latest/.
To get started, you'll need to follow these steps:
- Install django-beam:
pip install django-beam
- Add "beam" and "crispy_forms" to your
INSTALLED_APPS
insettings.py
:
INSTALLED_APPS = [
# ...
"beam",
"beam.themes.bootstrap4",
"crispy_forms",
]
- Import and use
beam
in your Django project, as shown in the example below:
# books/models.py
from django.db import models
class Book(models.Model):
title = models.CharField(max_length=255)
author = models.ForeignKey("Author", on_delete=models.CASCADE, related_name="books")
class Author(models.Model):
title = models.CharField(max_length=255)
# books/views.py
import beam
class BookViewSet(beam.ViewSet):
model = Book
fields = ['title', 'author']
class AuthorViewSet(beam.ViewSet):
model = Author
fields = ['title']
# urls.py
from django.urls import path, include
urlpatterns = [
path('books/', include(BookViewSet().get_urls())),
path('authors/', include(AuthorViewSet().get_urls())),
# ...
]
For more examples and detailed explanations of various django-beam features, refer to the full documentation.
The beam.contrib
package provides integration with several third-party Django apps, such as:
beam.contrib.auth
: Viewsets for editing users and groups, and optional templates for default Django registration views.beam.contrib.autocomplete_light
: Integration withdjango-autocomplete-light
.beam.contrib.reversion
: Experimental integration withdjango-reversion
.
Refer to the documentation for usage instructions on each of the contrib packages.
You can use the tox testing tool to run the tests:
tox -e py38-djangolatest
Run the tests of a specific test file only:
tox -e py38-djangolatest -- test_tags
Run against all supported versions of Python and Django:
tox
If you encounter any issues or have questions, please refer to the django-beam documentation or raise an issue on the GitHub repository.