- Install
pip install sqlalchemy-django-admin
- Add it to
INSTALLED_APPS
INSTALLED_APPS = [
...
'sqlalchemy_django_admin',
]
- Register table in admin
from django.contrib import admin
from sqlalchemy_django_admin import table_as_model
admin.site.register(table_as_model(your_sqlalchemy_table))
There's also the other ModelAdmin
with extra defined default behaviour.
from django.contrib import admin
from sqlalchemy_django_admin.admin import ModelAdmin
from sqlalchemy_django_admin import table_as_model
@admin.register(table_as_model(your_sqlalchemy_table))
class YourAdmin(ModelAdmin):
readonly_fields = ('field_x',)
TODO
on_update
is not supported.- For tables without primary key you must define it explicitly while converting.
If there is no suitable unique column,
MultipleObjectsReturned
exception and other inconsistencies can occur. - Only small scope of SQLAlchemy's defaults is supported:
- Only nullable fields in admin forms are not required by default (
blank=True
). - Foreign keys work correctly only if there is exactly one foreign key on the given column.
- The lib was only tested for
types.DateTime(timezone=True)
and wasn't tested for naive datetimes. - Integrity errors that occur on db level are not caught and lead to 500.
- Now there is no way to define django fields on your own – they're always created automatically.