基于BootStrap的Django后台管理应用


基于BootStrap的Django后台管理应用

今天给大家介绍一款基于BootStrap的响应式Django admin后台管理应用django-admin-bootstrap:

特征

  • 响应式
  • 边栏菜单
  • 易于安装/设置
  • 支持Django 1.11和2.1
  • Bootstrap 3
  • Python 3

截图

请参见屏幕截图

安装

$ pip install bootstrap-admin

并且不要忘记在之前添加bootstrap_admin。INSTALLED_APPS django.contrib.admin

例:

INSTALLED_APPS = (
    # ...
    'bootstrap_admin', # 始终在django.contrib.admin之前
    'django.contrib.admin',
    # ...
)

定制

边栏菜单

它默认启用。但是如果你django.template.context_processors.request从你的context_processors。

只是禁用它:

BOOTSTRAP_ADMIN_SIDEBAR_MENU  =  False

覆盖Logo

如果您想使用自己的徽标,可以通过覆盖login.html和base_site.html来实现这一点,就像在Django Admin中一样。

首先,确保TEMPLATES正确配置settings.py中的设置:

TEMPLATES = [
    {
        'BACKEND': 'django.template.backends.django.DjangoTemplates',
        'DIRS': [os.path.join(BASE_DIR, 'my_django_project/templates')],
        'APP_DIRS': True,
        # other stuff
    },
]

DIRS:您必须设置模板的位置,绝对路径。

我假设BASE_DIR是:

BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))

这种创建全局模板文件夹的模式对于您用于base.html和其他全局模板非常有用。

更多信息://docs.djangoproject.com/en/2.1/ref/templates/api/#configuring-an-engine

让我以项目结构为例向您展示:

├── my_django_project
│   ├── core
│   │   ├── admin.py
│   │   ├── apps.py
│   │   ├── models.py
│   │   ├── tests.py
│   │   └── views.py
│   ├── settings.py
│   ├── templates
│   │   └── admin
│   │       ├── base_site.html
│   │       └── login.html
│   ├── urls.py
│   └── wsgi.py
├── manage.py

您可以看到我创建了一个全局模板/文件夹,其中另一个目录位于admin /包含login.html和base_site.html。

他们各自的内容是:

base_site.html

{% extends 'admin/base_site.html' %}
{% load static %}

{% block branding %}
    <a href="{% url 'admin:index' %}" class="django-admin-logo">
        <!-- Django Administration -->
        <img height="60" src="{% static "bootstrap_admin/img/logo-140x60.png" %}" alt="{{ site_header|default:_('Django administration') }}">
    </a>
{% endblock branding %}

login.html

{% extends 'admin/login.html' %}
{% load i18n static %}

{% block branding %}
    <a href="{% url 'admin:index' %}" class="django-admin-logo">
        <!-- Django Administration -->
        <img height="60" src="{% static "bootstrap_admin/img/logo-140x60.png" %}" alt="{{ site_header|default:_('Django administration') }}">
    </a>
{% endblock branding %}

//docs.djangoproject.com/en/2.1/ref/contrib/admin/#admin-overriding-templates

GitHub

django-admin-bootstrap