django安裝使用xadmin

Xadmin介紹

直接替換掉Django自帶的admin系統,並提供了不少有用的東西;徹底的可擴展的插件支持,基於Twitter Bootstrap的漂亮UI。python

  • 徹底替代Django admin
  • 支持基於Twitter Bootstrap的UI主題
  • 支持可擴展的插件
  • 更好的過濾器,日期範圍,數量範圍等
  • 內置xls,csv,xml和json格式數據導出
  • 儀表板頁面和小部件支持 (暫時用不到)
  • 現場書籤
  • 完整的CURD方法(增刪改查)

Xadmin安裝

xadmin下載: https://github.com/sshwsfc/xadmin/tree/django2(記得要直接下載zip)git

 

 

源碼集成:github下載源碼(必定要下載django2的文件名爲:xadmin-django2.zip,解壓后里面有個xadmin就是咱們須要的xadmin源碼了)github

項目的根目錄建立一個文件夾爲:extra_apps,將下載的好xadmin源碼拷貝到extra_apps目錄中以下:shell

 

 

經過pycharm 選中extra_apps文件夾點擊鼠標右鍵選中菜單mark directory as 選擇 sources root就能夠變成上面的藍色文件夾目錄就能夠了。數據庫

 

 

 

 安裝依賴項:django

#pip install git+git://github.com/sshwsfc/xadmin.git@django2

依賴項:
django-crispy-forms
django-import-export
django-reversion
django-formtools
future
httplib2
six

Xadmin配置

 settings.py配置json

# Build paths inside the project like this: os.path.join(BASE_DIR, ...)
BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
sys.path.insert(0,os.path.join(BASE_DIR,'extra_apps'))
sys.path.insert(0,os.path.join(BASE_DIR,'polls')) 
INSTALLED_APPS = [
    'django.contrib.admin',
    'django.contrib.auth',
    'django.contrib.contenttypes',
  ……
'polls', #應用app
'xadmin', 'crispy_forms', 'reversion', ]

 

urls.py配置app

from django.contrib import admin
from django.urls import include, path
import xadmin 
urlpatterns = [
    path('polls/', include('polls.urls')),
    path('admin/', admin.site.urls),
path('xadmin/',xadmin.site.urls),
]

setting.py設置成中文ssh

LANGUAGE_CODE = 'zh-hans'

TIME_ZONE = 'Asia/Shanghai'

USE_I18N = True

USE_L10N = True

USE_TZ = False

 

bug修改ide

 

 

TypeError at /xadmin/xadmin/userwidget/add/ render() got an unexpected keyword argument 'renderer'錯誤

修改項目中xadmin/views/dashborad.py中的render(),在render()中添加參數:renderer=None,便可解決。

 

 

 

 

運行項目

   先執行python manage.py makemigrations 而後執行python manage.py migrate 生成數據庫

   執行 python manage.py runserver (若是缺乏庫的話自行安裝相應的庫就能夠了),

   當訪問後臺的時候能夠看到以下效果說明成功了

 

 

 中文板式:

 

 

 

建立管理員

python manage.py createsuperuser

 

Django admin修改用戶密碼

python manage.py shell  

from django.contrib.auth.models import User #引入管理員密碼存放的數據庫

user=User.objects.filter() #查找該數據庫裏有哪些用戶

user 

輸出user 能夠看到用戶名,我這裏只有一個admin

[<User: admin>]     

重置密碼,

user = User.objects.get(username='admin') #獲取名稱爲admin的用戶

user.set_password('123456') #設置密碼

user.save()  # 保存user對象

 

Django admin修改註冊表信息

xadmin後臺若是要對錶的內容增刪改查,跟以前的admin.py文件裏面寫註冊表信息同樣,需在admin.py同一級目錄新建一個adminx.py的文件。
而後在adminx.py文件控制頁面上需顯示的內容。

Models模塊

from django.utils import timezone
import datetime


class Question(models.Model):
    question_text = models.CharField(max_length=200)
    pub_date = models.DateTimeField('date published')

    def __str__(self):
        return self.question_text

    def was_published_recently(self):
        now = timezone.now()
        return now - datetime.timedelta(days=1) <= self.pub_date <= now


class Choice(models.Model):
    question = models.ForeignKey(Question,on_delete=models.CASCADE)
    choice_text = models.CharField(max_length=200)
    votes = models.IntegerField(default=0)

    def __str__(self):
        return self.choice_text

adminx.py文件

在admin.py文件的同一目錄新建一個adminx.py(注意只能是adminx.py,不能叫其它的名稱)
在adminx.py裏與以前的admin.py代碼有一些不同

  • 以前import admin, 這裏import xadmin
  • 以前註冊表時繼承admin.ModelAdmin, 這裏繼承object
  • 以前inlines 關聯的表(class MoreInfo)繼承admin.StackedInline, 這裏繼承object
  • 以前能夠有2種註冊方式,能夠用裝飾器方法@admin.register(表類名),這裏只能經過xadmin.site.register(表類名, xxx)方式
import xadmin
from .models import Question, Choice


class MoreInfo(object):
    model = Choice


class ControlQuestion(object):
    # 顯示的字段
    list_display = ('question_text', 'pub_date')
    # 搜索條件
    search_fields = ('question_text',)

    # 每頁顯示10條
    list_per_page = 10

    # 在Question頁面顯示更多信息Choice
    inlines = [MoreInfo]


class ControlChoice(object):
    list_display = ["question", "choice_text"]


# 註冊Question表
xadmin.site.register(Question, ControlQuestion)
xadmin.site.register(Choice, ControlChoice)

xadmin列表頁顯示

 

 

相關文章
相關標籤/搜索