8. Красивый админ Джанго

GitHub

Эта статья предназначена только для обучения, если есть какие-либо ошибки, пожалуйста, укажите

В процессе настройки проекта, если возникла ошибка, перейдите к нижней части статьи, чтобы узнать о некоторых решениях ошибок. Вы также можете оставить сообщение ниже

Перед тем, как посмотреть, как большие ребята в группе «демонстрируют свои навыки», я упомянул административную систему Django.

Здесь упоминается приложение под названием xadmin.

Так что я хочу попробовать

Не говори много, начни

Скачать Xadmin

URL http://www.xadmin.io/ (Введение к нему на официальном сайте представляет собой мощную подключаемую систему django на основе bootstrap3)

К сожалению, официальный сайт Django, похоже, прекратил техническое обслуживание.

Но на гитхабе еще есть его проекты, адрес https://github.com/sshwsfc/xadmin

клонировать на рабочий стол

......

Итак, мы получили пакет xadmin-master

остальные зависимости

django>=2
django-crispy-forms>=1.6.0
django-import-export>=0.5.1
django-reversion>=2.0.0
django-formtools==2.0
future==0.15.2
httplib2==0.9.2
six==1.10.0

Прямая установка pip очень проста и не доставляет хлопот

Где документация?

https://xadmin.readthedocs.io/en/latest/quickstart.html

заявление

Создайте проект джанго

myxadmin - пакет моего проекта

apps — это папка, в которой хранятся приложения, которые я создаю.

extra_apps — это папка для хранения сторонних приложений, под эту папку мы помещаем папку xadmin

Проблема, на которую нам нужно обратить внимание, — это процесс django.

Когда мы посетим http://127.0.0.1:8000/admin, django сначала войдет в нашу конфигурацию.

Войдите, когда мы найдем нашего администратора

Но здесь нам нужно заменить admin на xadmin

Так что мы собираемся сделать это здесь

1. Закомментируйте все admin.py во всех созданных вами приложениях &&, и вы можете создать файл adminx.py в своем проекте.

Затем класс модели, который вы хотите зарегистрировать, больше не записывается в классе forme, а в adminx.py.

2. В конфигурацию settings.py вставьте следующее содержимое, которое используется для украшения нашего интерфейса.

3. Добавьте среду проекта в системную среду.

4. Превратите администратора в xadmin

5.python manage.py runserver

Действительно, по сравнению с предыдущим экраном администратора, этот фон относительно красивее.

Зарегистрируйте наш модельный класс

from .models import Student
import xadmin


class StudnetAdmin(object):
    list_display = ['title','num']  #设置数据表在后台显示的字段
    list_filter = ('country',)      #可过滤字段
    search_fields = ('name', 'city',)   #可搜索字段
    list_editable= ['is_hot'],     #可编辑
    style_fields = {"goods_desc": "ueditor"} #继承ueditor
xadmin.site.register(Student,StudnetAdmin)

На что нам нужно обратить внимание, так это на то, что StudentAdmin, на который мы ссылаемся, больше не admin.AdminMOdel, а объект.

Не думайте, что такого атрибута нет, потому что нет умной подсказки, его все равно можно применить

Вау! эта тема некрасивая

Если вы совсем не конкретны и хотите видеть разные темы в xadmin, измените основные настройки в своем xadmin.py.

class BaseSetting(object):
    enable_themes = True  #是否可以切换主题
    use_bootswatch = True #更多的主题功能
xadmin.site.register(xadmin.views.BaseAdminView,BaseSetting)

Конечно, если у вас несколько приложений, вам нужно изменить их только в одном приложении.

какие ! Название и нижний колонтитул тоже некрасивые?

class GlobaSetting(object):
    site_title = "Alpaca"   #设置标题
    site_footer = "Alpaca的公司"  #设置页脚
    menu_style = "accordion" #将左边的列表转换成可缩进形式

xadmin.site.register(xadmin.views.CommAdminView,GlobaSetting)

Окей круто

Список приложений на английском языке слишком уродлив!

/polls/apps.py

from django.apps import AppConfig


class PollsConfig(AppConfig):
    name = 'polls'
    verbose_name ="应用"
/polls/init.py

default_app_config = "polls.apps.PollsConfig"

Ошибка, пожалуйста, смотрите здесь

Поскольку это, кажется, версия, которую я скачал ранее, здесь ошибка

не могу войти в суперюзер

Здесь смотрим на его ошибку и вводим строчку

Измените код следующим образом, поскольку предыдущее совпадение было \n

Поскольку \n не совпадает, мы программируем '\>