Skip to main content

A Bootstrap theme for Django Admin

Project description

PyPI version

A Django admin theme using Bootstrap. It doesn’t need any kind of modification on your side, just add it to the installed apps.

Requirements

  • Django >=1.4.x and <1.7

Installation

  1. Download it from PyPi with pip install django-admin-bootstrapped
  2. Add into the INSTALLED_APPS before 'django.contrib.admin':
'django_admin_bootstrapped.bootstrap3',
'django_admin_bootstrapped',
  1. Have fun!

Goodies

Translate/change an application name with a template

With the default admin you can’t change the application name, but django-admin-bootstrapped let you do it in a really easy way. Just create a file named admin_app_name.html into the application’s template folder. Eg: myapp/templates/admin_app_name.html or project/templates/myapp/admin_app_name.html. You can also change the default Django Administration title, just add a admin_title.html file into your project/templates/admin/ folder.

Add custom html to the change form of any model with a template

You can inject custom html on top of any change form creating a template named admin_model_MODELNAME_change_form.html into the application’s template folder. Eg: myapp/templates/myapp/admin_model_mymodelname_change_form.html or project/templates/myapp/admin_model_mymodelname_change_form.html.

Inline sortable

You can add drag&drop sorting capability to any inline with a couple of changes to your code.

First, add a position field in your model (and sort your model accordingly), for example:

class TestSortable(models.Model):
    that = models.ForeignKey(TestMe)
    position = models.PositiveSmallIntegerField("Position")
    test_char = models.CharField(max_length=5)

    class Meta:
        ordering = ('position', )

Then in your admin.py create a class to handle the inline using the django_admin_bootstrapped.admin.models.SortableInline mixin, like this:

from django_admin_bootstrapped.admin.models import SortableInline
from models import TestSortable

class TestSortable(admin.StackedInline, SortableInline):
    model = TestSortable
    extra = 0

You can now use the inline as usual. The result will look like this:

https://riccardo.forina.me/static/screens/django_admin_bootstrapped_screen_inlines.png

This feature was brought to you by Kyle Bock. Thank you Kyle!

XHTML Compatible

Compatible with both html and xhtml. To enable xhtml for your django app add the following to your settings.py: DEFAULT_CONTENT_TYPE = ‘application/xhtml+xml’

Generic lookups in admin

https://a248.e.akamai.net/camo.github.com/2848fec376b4af6d6a08e2a3a7d575569115f998/687474703a2f2f692e696d6775722e636f6d2f766970547453732e706e67

All that needs to be done is change the admin widget with either formfield_overrides like this:

from django_admin_bootstrapped.widgets import GenericContentTypeSelect

class SomeModelAdmin(admin.ModelAdmin):
    formfield_overrides = {
        models.ForeignKey: {'widget': GenericContentTypeSelect},
    }

Or if you want to be more specific:

from django_admin_bootstrapped.widgets import GenericContentTypeSelect

class SomeModelAdmin(admin.ModelAdmin):
    def formfield_for_dbfield(self, db_field, **kwargs):
        if db_field.name == 'content_type':
            kwargs['widget'] = GenericContentTypeSelect
        return super(SomeModelAdmin, self).formfield_for_dbfield(db_field, **kwargs)

If you decide on using formfield_overrides you should be aware of its limitations with relation fields.

This feature (and many more) was brought to you by Jacob Magnusson. Thank you Jacob!

Screenshots

Homepage

https://riccardo.forina.me/static/screens/django_admin_bootstrapped_screen_v02_index.png

List view with filters in dropdown

https://riccardo.forina.me/static/screens/django_admin_bootstrapped_screen_v02_list_filter.png

Change form view

https://riccardo.forina.me/static/screens/django_admin_bootstrapped_screen_v02_change_form.png

Project details


Release history Release notifications

History Node

2.5.7

History Node

2.5.6

History Node

2.5.5

History Node

2.5.4

History Node

2.5.2

History Node

2.5.1

History Node

2.5.0

History Node

2.4.0

History Node

2.3.6

History Node

2.3.5

History Node

2.3.4

History Node

2.3.3

History Node

2.3.2

History Node

2.3.1

History Node

2.3.0

History Node

2.2.1

History Node

2.2.0

History Node

2.1.1

History Node

2.1.0

History Node

2.0.5

History Node

2.0.4

History Node

2.0.3

History Node

2.0.1

History Node

2.0.0

History Node

1.6.9

History Node

1.6.8

This version
History Node

1.6.7

History Node

1.6.6

History Node

1.6.5

History Node

1.6.4

History Node

1.6.3

History Node

1.6.2

History Node

1.6.1

History Node

1.6.0

History Node

0.4.3

History Node

0.4.2

History Node

0.4.1

History Node

0.4

History Node

0.3.2

History Node

0.3.1

History Node

0.3

History Node

0.2

History Node

0.1.1

History Node

0.1

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Filename, size & hash SHA256 hash help File type Python version Upload date
django-admin-bootstrapped-1.6.7.tar.gz (370.4 kB) Copy SHA256 hash SHA256 Source None Aug 12, 2014

Supported by

Elastic Elastic Search Pingdom Pingdom Monitoring Google Google BigQuery Sentry Sentry Error logging CloudAMQP CloudAMQP RabbitMQ AWS AWS Cloud computing Fastly Fastly CDN DigiCert DigiCert EV certificate StatusPage StatusPage Status page