Metadata-Version: 2.1
Name: django-beam
Version: 0.0.5
Summary: A crud library for python
Home-page: https://github.com/django-beam/django-beam
Author: Raphael Kimmig
Author-email: raphael@ampad.de
License: BSD 3-Clause License
Download-URL: https://github.com/django-beam/django-beam/archive/0.0.5.tar.gz
Platform: UNKNOWN
Classifier: Framework :: Django
Classifier: Programming Language :: Python :: 3
Description-Content-Type: text/markdown
Requires-Dist: django (~=2.0)
Requires-Dist: django-crispy-forms (~=1.7)

[![CircleCI](https://circleci.com/gh/django-beam/django-beam.svg?style=svg)](https://circleci.com/gh/django-beam/django-beam)
[![ReadTheDocs](https://readthedocs.org/projects/django-beam/badge/)](https://django-beam.readthedocs.io/en/latest/)

# django-beam
django-beam provides you with a set of views, templates and integrations for the most common CRUD
applications. 

The goal is having the functionality provided by django's own admin, but in a way that integrates
with your other frontend code. 

## Features
- CRUD operations based on class based views
- Default templates with multiple themes (bootstrap 4, ...)
- Extensions for common use cases, e.g. export as csv, ...
- Support for related models (autocompletion, linking, ...)
- Familiar interfaces

## Documentation
See https://django-beam.readthedocs.io/en/latest/

## Example
```
# models.py
class Group(models.Model):
    name = models.TextField()


class Person(models.Model):
    name = models.TextField()
    email = models.EmailField()

    groups = models.ManyToManyField(Group)


# views.py
import beam

class PersonViewSet(beam.ViewSet):
    fields = ['name', 'groups']


class GroupViewSet(beam.ViewSet):
    fields = ['name']


# urls.py
urlpatterns += [
    path('person/', include(PersonViewSet().get_urls())),
    path('group/', include(GroupViewSet().get_urls())),
]


# settings.py
INSTALLED_APPS += [
    "beam",
    "beam.themes.bootstrap4",  # or choose any theme you like
]
```

## Themes
We currently ship two different themes.
* `beam.themes.plain`  
  Just plain and simple HTML5

* `beam.themes.bootstrap4`  
  Using default Bootstrap v4 markup and include a basic Bootstrap CSS file.

  In order to use the bootstrap4 theme you have to install the optional dependency
  `django-crispy-forms` and add it to your INSTALLED_APPS in settings.py:
  ```
  INSTALLED_APPS = (..., 'crispy_forms')
  ```



