1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/wuyue92tree-django-adminlte-ui

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Это зеркальный репозиторий, синхронизируется ежедневно с исходного репозитория.
Клонировать/Скачать
guide.md 9.1 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
Отправлено 7 дней назад 0e97ed4

Пособия

Общие опции

Динамическая настройка вашего сайта на основе таблицы django_admin_settings_options.

Поддерживаемые опции:

  • Название сайта
  • Заголовок сайта
  • Логотип сайта
  • Приветственный текст
  • Поле аватара
  • Отображение аватара

Опции

Эти опции находятся в вашей базе данных, названной django_admin_settings_options, после выполнения миграций.

Вы также можете добавить свои собственные опции в эту таблицу и использовать их с помощью шаблонных тегов adminlte_options и функции get_adminlte_option.

Таблица опций имеет поле действительности для контроля работы ваших опций.

Пример:

# adminlte/general_option.html

{% load adminlte_options %}

# Здесь имя моего опции site_title, вы можете настроить его самостоятельно.
{% get_adminlte_option 'site_title' as adminlte_site_title %}
{% if adminlte_site_title.valid %}
{{ adminlte_site_title.site_title }}
{% else %}
{{ site_title|default:_('Django site admin') }}
{% endif %}

Перед созданием своих опций, вам следует знать, какие опции использует adminlte.

  • site_title
  • site_header
  • site_logo
  • welcome_sign
  • USE_CUSTOM_MENU
  • avatar_field
  • show_avatar

ModelAdmin

  • Добавьте поддержку select2 для change_list фильтра
  • Настройте placeholder для search_fields
# adminlte/admin.py
class ModelAdmin(admin.ModelAdmin):
  select2_list_filter = ()
  search_field_placeholder = ''

  class Media:
    css = {
      "all": ("admin/components/select2/dist/css/select2.min.css",)
    }
    js = (
      "admin/components/select2/dist/js/select2.min.js",
    )

  def changelist_view(self, request, extra_context=None):
    view = super().changelist_view(request, extra_context)
    cl = view.context_data.get('cl')
    cl.search_field_placeholder = self.search_field_placeholder
    filter_specs = cl.filter_specs
```    for index, filter_spec in enumerate(filter_specs):
      if filter_spec.field_path in self.select2_list_filter:
        # флаг для использования Select2
        filter_spec.display_select2 = True
        cl.filter_specs[index] = filter_spec
    view.context_data['cl'] = cl
    return view

Виджеты

AdminlteSelect

С версии v1.5.0b0 вам больше не требуется модифицировать новый шаблон для активации Select2.

Пример:

# adminlte/admin.py
@admin.register(Menu)
class MenuAdmin(TreeAdmin):
    ...
    # change_form_template = 'adminlte/menu_change_form.html'
    formfield_overrides = {
        models.ForeignKey: {'widget': AdminlteSelect}
    }
```# adminlte/menu_change_form.html
# активация целевого селекта
# {% extends 'admin/change_form.html' %}

# {% block extrajs %}
# {{ block.super }}
# <script>
#     django.jQuery('#id_content_type').select2();
# </script>
# {% endblock %}

Эффект:

adminlte_select

AdminlteSelectMultiple

Начиная с версии v1.5.0b0 вам больше не требуется модифицировать новый шаблон для активации Select2.

Пример:

# adminlte/admin.py
@admin.register(Menu)
class MenuAdmin(TreeAdmin):
    ...
    # change_form_template = 'adminlte/menu_change_form.html'
    formfield_overrides = {
        # множественный выбор для ManyToManyField
        models.ManyToManyField: {'widget': AdminlteSelectMultiple(
            attr={'style': 'width: 100%'}
        )}
    }

# adminlte/menu_change_form.html
# активация целевого селекта
# {% extends 'admin/change_form.html' %}
#
# {% block extrajs %}
# {{ block.super }}
# <script>
#     django.jQuery('#id_content_type').select2();
# </script>
# {% endblock %}

Эффект:

adminlte_select

Меню

Настройте свое меню в зависимости от базы данных и библиотеки TreeBeard.глубина 2, более глубинные уровни пока недействительны.

Настройка меню

Обменять меню путем нажатия кнопки "Обменять меню"

список меню

Форма меню

форма меню

  • имя: Название меню
  • позиция: Положение вашего пользовательского меню, по умолчанию слева
  • тип ссылки:
    1. внутренняя: django urls
    2. внешняя: ссылки третьих сторон
    3. разделённая: разделённая ссылка, как название приложения verbose_name.
  • ссылка:
    1. admin:index: имя django url, рекомендовано.
    2. /admin/: внутренний django url, если вы используете i18n url, это не лучший вариант.
    3. http://: внешняя ссылка
  • иконка: иконка
  • content_type: Используется для контроля прав доступа, если пользователь не имеет права доступа к app_label:model в content_type, он будет пропущен.
  • действителен: Элемент меню действителен только когда значение действителен равно True.
  • уровень приоритета: по умолчанию 100, используется для сортировки. Чем больше число, тем выше приоритет.
  • опции treebeard: для сортировки.

Получить имя url в django для ссылки

╰─$ python manage.py shell
Python 3.6.6 (default, Sep 29 2018, 19:18:41) 
Type 'copyright', 'credits' or 'license' for more information
IPython 7.5.0 -- An enhanced Interactive Python. Type '?' for help.

In [1]: from django.urls import resolve
```In [2]: resolve('/ru/admin/video/parsed/')                                                                                                                                           
Out[2]: ResolverMatch(func=django.contrib.admin.options.changelist_view, args=(), kwargs={}, 
url_name=video_parsed_changelist, app_names=['admin'], namespaces=['admin'], route=ru/admin/video/parsed/)

имя url в django = namespaces:url_name

настройки

в вашем setting.py ADMINLTE_SETTINGS

пример

Пример демонстрационных возможностей отключения/включения

ADMINLTE_SETTINGS = {
    'demo': True,
}

поиск

Отключение/включение формы поиска

ADMINLTE_SETTINGS = {
    'search_form': True,
}

тема

Выбор темы

ADMINLTE_SETTINGS = {
    'skin': True,
}

авторское право

Кастомное сообщение об авторском праве

ADMINLTE_SETTINGS = {
    'copyright': 'Иван Петров',
}

расширенное навигационное меню

Функционал расширенной навигации, где элементы навигации не скрываются под открываемым меню

ADMINLTE_SETTINGS = {
    'navigation_expanded': True,
}

показывать приложения

ADMINLTE_SETTINGS = {
    'show_apps': ['django_admin_settings', 'auth', 'main'],
}

основное навигационное приложение

Основное навигационное приложение, где модели приложений располагаются в верхней части меню

ADMINLTE_SETTINGS = {
    'main_navigation_app': 'django_admin_settings',
}

приложения

Модификация значков приложений и порядок приложений/моделей

ADMINLTE_SETTINGS = {
    'apps': {
        'example-app': {
            'icon': 'fa-desktop',
            'models': {
                'example-model': {
                    'icon': 'fa-archive'
                },
                'example-model1': {}
            }
        },
        'auth': {
            'icon': 'fa-users'
        }
    }
}

Комментарий ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/wuyue92tree-django-adminlte-ui.git
git@gitlife.ru:oschina-mirror/wuyue92tree-django-adminlte-ui.git
oschina-mirror
wuyue92tree-django-adminlte-ui
wuyue92tree-django-adminlte-ui
master