美文网首页Django开发个人网站pythonpython学习实践
Django学习记录第三天—xadmin配置

Django学习记录第三天—xadmin配置

作者: Rokkia | 来源:发表于2017-06-22 20:40 被阅读7929次

上一篇中我们有讲到http://127.0.0.1:8000/admin 这个地址,github上有一个更好看、功能更强大的库来管理后台,它的名字叫xadmin,我也是听说,一起来看看吧,它有多强大。

安装

通过文档我们可以发现,我们有两种方法可以进行安装。

  1. 使用pip install 安装
  2. 下载源码安装

这两种安装的区别在于
pip安装需要执行

pip install django-xadmin

源码安装,你会发现你下载的目录下有一个requirements.txt文件,你需要执行

pip install -r requirements.txt

然后将文件导入到项目中,like this

image.png

为了方便管理,我们创建了django_extra文件夹,与apps一样需要在settings中设置。这里不在重复执行了。

之后的操作源码跟pip操作都是一样的。

然后按照文档,我们需要将其配置到settings中的INSTALLED_APPS中

INSTALLED_APPS = [
   ...
   ... 
   ...
    'xadmin',
    'crispy_forms',
]

这一步之后只需要再配置一下url就OK了
import xadmin

urlpatterns = [
# url(r'^admin/', admin.site.urls),
url(r'^xadmin/', xadmin.site.urls),
]

到此为止我们就算是配置完成了,运行一下看看效果。

ProgrammingError at /xadmin/
(1146, "Table 'newmxonline.xadmin_usersettings' doesn't exist")

这是个什么问题?

其实到这里还没有完成,我们还需要更新一下数据库,老方法

makemigrations

migrate

我们会发现数据中多了4张表。

image.png

OK,运行看一下,这里我们直接访问http://127.0.0.1:8000/xadmin/
来比较两个有什么区别。

xadmin admin center Django自带admin center

看起来也没什么变化吗,这只是开始,我们来写简单配置看一下。
说实话django的文档有点坑。好多都找不到。

散了不指望它了。

配置
  • 首先我们改一下字体。

我们来到settings 中下位置可以看到这样几个参数

LANGUAGE_CODE = 'en-us'
TIME_ZONE = 'UTC'
USE_I18N = True
USE_L10N = True
USE_TZ = True

我们只需要将其改为

LANGUAGE_CODE = 'zh-hans'
TIME_ZONE = 'Asia/Shanghai'
USE_I18N = True
USE_L10N = True
USE_TZ = False

看一下效果。

image.png

恩 好看多了!
但是空空如野,我们怎么进行管理呢?

  • 添加管理数据
    这里我们需要到我们app中添加一个adminx.py的文件。注意哦,adminx.py不要输错哦。
    导入 xadmin与要绑定的model,因为这里我们只有一个UserProfile model,我们就导入这一个看看效果。
import xadmin
from .models import UserProfile

然后我们需要创建class,class命名格式最好为类名+Admin

class UserProfileAdmin(object):
    pass

最后我们需要注册一下。

xadmin.site.register(UserProfile, UserProfileAdmin)

OK,设置完成我们来看一下效果。

image.png

跟刚才比我们多了一个,users块,点开看看用户里面有什么。

root是不是很眼熟,这就是我们的superuser。我们可以点击去进行管理,数据更改或者权限添加等。

有没有发现用户上面的USERS很不爽,如果是中文就好了。我们来改一下。

  • 修改块头为中文
    1.我们在apps.py中添加verbose_name = u'你想要的名字'
image.png

2.我们在__init__.py中添加

default_app_config='users.apps.UsersConfig'

看一下效果。

image.png

完美

突然发现这一块好空哦。添加点东西?

image.png

怎么添加呢

  • 添加显示字段

我们需要来到我们的adminx.py中,将我们定义的xxxAdmin修改成这样

class UserProfileAdmin(object):
    list_display = ['id', 'username', 'email' ]  #添加要显示的列
    search_fields = ['id', 'username', 'email' ]  #要查询的列
    list_filter = ['id', 'username', 'email' ]  #要筛选的列

看一下效果吧

image.png

看看还有什么不顺眼的地方

image.png

这两个地方有点奇怪呢,改一下。
我们在adminx.py中添加下面代码即可。

from xadmin import views

class GlobalSetting(object):
    site_title = '鲸之网'   #设置头标题
    site_footer = '鲸之网'  #设置脚标题

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

OK看一下效果。

image.png

最后一个

收缩
  • 可收缩列

只需要在刚才定义的GlobalSetting中添加menu_style = 'accordion'

class GlobalSetting(object):
    site_title = '鲸之网'   #设置头标题
    site_footer = '鲸之网'  #设置脚标题
    menu_style = 'accordion'

OK,看一下效果

image.png

OK,基本完美了。明天继续!看一下登录OR注册

我的学习总结,争取坚持30天

相关文章

网友评论

  • 135a7b767d27:用django2.0 & python3.6 实验了一下,貌似不用在adminx.py绑定UserProfile就可以用,相反如果绑定还会报错
    xadmin.sites.AlreadyRegistered: The model UserProfile is already registered
    一潸:英雄所见略同。
  • XF_Said:在xadmin后台添加用户信息,发现只能添加用户名和密码,并且以UserProfile作为外键的时候,在后台选择UserProfile数据的时候也选择不了,请问你是怎么解决的呢?
    卓越笔记:@XF_Said 在xadmin后台添加用户信息,发现只能添加用户名和密码。 这个问题你解决了吗?还有 xadmin 后台怎么注册 继承的 userprofile
    XF_Said:好吧,xadmin的用户外键的形式是输入之后检索,admin的是选择列表,不一样哈:joy:
  • 26c1a69c195b:页面app名称修改这块实现不了,望大神帮帮忙,已经弄了好几天了
    蒲小帅丶:class Article(models.Model):
    title = models.CharField(max_length=50, default='', verbose_name=u"标题")
    content = models.TextField(max_length=500, default='', verbose_name=u"内容")

    class Meta:
    verbose_name = u"文章"
    verbose_name_plural = verbose_name


    def __str__(self):
    return self.title
    verbose_name = u"文章"这个就是修改在页面app的名称
  • 请叫我老曹:(Regist_env) F:\User\Administrator\xadmin>pip3 install django-xadmin
    Collecting django-xadmin
    Using cached django-xadmin-0.5.0.tar.gz
    Complete output from command python setup.py egg_info:
    Traceback (most recent call last):
    File "<string>", line 1, in <module>
    File "C:\Users\ADMINI~1\AppData\Local\Temp\pip-build-ff_8d1xp\django-xadmin\setup.py", line 11, in <module>
    long_description=open('README.rst').read(),
    UnicodeDecodeError: 'gbk' codec can't decode byte 0xa4 in position 3256: illegal multibyte sequence

    ----------------------------------------
    Command "python setup.py egg_info" failed with error code 1 in C:\Users\ADMINI~1\AppData\Local\Temp\pip-build-ff_8d1xp\django-xadmin\

    (Regist_env) F:\User\Administrator\xadmin>

    我安装的时候怎么会报错
    请叫我老曹:@__鲸_ 好的 谢谢
    Rokkia:@请叫我老曹 http://blog.sina.com.cn/s/blog_537517170102x11q.html 可以看一下这篇文章 查找一下这个错误 'gbk' codec can't decode byte 0xa4 in position 3256: illegal multibyte sequence
  • 8ada97ac2abe:您好,请问阁下对xadmin的插件开发熟悉吗,xadmin的图表插件我想用柱状图可是不会
    8ada97ac2abe: @__鲸_ 感谢,一起努力~
    Rokkia:@OURINES Sorry还没有研究那么深,不过我看了一下文档https://xadmin.readthedocs.io/en/latest/make_plugin.html#id2,里面有讲,你可以看一下里面的插件实例,里面讲了在哪里添加html,哪里添加js,以及使用什么来判断插件是否启用。还有就是看你需要说明插件,在插件开发中可以选择你需要的View进行注册。

本文标题:Django学习记录第三天—xadmin配置

本文链接:https://www.haomeiwen.com/subject/pysfcxtx.html