Django admin入门
Admin是Django自带的一个功能非常强大的自动化数据管理界面(也叫后台管理系统)
被授权的用户可以直接在Admin中管理数据库(增删改查)
配置Admin
首先我们在全局的settings.py中可以看到Django已经帮我们内置了很多应用
例如: admin, auth, sesions, messsages 等等
INSTALLED_APPS = [
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'blog'
]
第一步,创建一个supperuser, 也是通过mamage.py来创建
我们在这里创建了一个叫: alex的supperuser
# python manage.py createsuperuser
第二步,启动Project
第三步,登录admin管理界面
地址:localhost/admin , 这个已默认被配置在全局的urls.py中
from django.conf.urls import url, include
from django.contrib import admin
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^index/', include('blog.urls')),
]
使用刚才创建的alex进行登录
页面还是蛮漂亮的,不过语言是英文,可以在全局配置文件settings.py中的 LANGUAGE_CODE = 'zh_Hans' 修改为中文。
配置应用
第一步,在APP目录下的admin.py中import models.py
使用admin.site.register(models.class) 即可完成注册
from django.contrib import admin
from .models import Article
admin.site.register(Article)
然后,刷新admin页面即可生效
点击进入Articles,可以看到显示的两条记录都是Article Object,这不是我们想要的,我们想要的是直接显示title
在APP目录下的models.py中的Article类中,我们定义一个方法来return title
from django.db import models
class Article(models.Model):
title = models.CharField(max_length=24, default='Title')
content = models.TextField(null=True)
def __str__(self):
return self.title
然后刷新admin管理页面即可生效
admin默认只显示第一个字段,因此我们可以定义一个class使用 list_display 显示多个字段
from django.contrib import admin # Register your models here. from .models import Students class StudentAdmin(admin.ModelAdmin): list_display = ("name", "age", "grade", "course", "enroll_date") admin.site.register(Students, StudentAdmin)
显示效果
未完待续......