一、创建管理员
- Django提供admin后台,便于统一管理用户、权限和权限组,超级用户初始化方法
- 初始化命令行:
python3 manage.py createsuperuser
- 根据提示设置用户名、邮箱和密码:
用户名 (leave blank to use 'admin'): admin
电子邮件地址: XXXX@xx.com
Password:
Password (again):
Bypass password validation and create user anyway? [y/N]: y
Superuser created successfully.
二、修改admin.py
只需要这三行代码,我们就可以拥有一个强大的后台!
from django.contrib import admin
from .models import class_name #导入models.py中定义的类
admin.site.register(class_name)
使用命令:python manage.py runserver
访问 http://localhost:8000/admin/ 输入设定的帐号和密码, 就可以看到:
点击 Articles,动手输入 添加几篇文章,就可以看到:
我们会发现所有的文章都是叫 Article object,这样肯定不好,比如我们要修改,如何知道要修改哪个呢?
修改一下 blog 中的models.py
在class类中加了一个 __str__ 函数,刷新后台网页,会看到:
所以推荐定义 Model 的时候 写一个 __str__函数
三、在后台列表显示与字段相关的其它内容
后台已经基本上做出来了,可是如果我们还需要显示一些其它的fields,如何做呢?
在admin.py中 修改后台栏目显示的内容,,使用list_display显示
admin.site.register(Person)
修改为:
from django.contrib import admin
from .models import Article, Person
class ArticleAdmin(admin.ModelAdmin):
list_display = ('title', 'pub_date', 'update_time',) # #使用list_dispaly数据库表的列表
class PersonAdmin(admin.ModelAdmin):
list_display = ('full_name',)
admin.site.register(Article, ArticleAdmin) #第一参数:数据库表类;第二个参数:列表显示的类
admin.site.register(Person, PersonAdmin)
list_display 就是来配置要显示的字段的,当然也可以显示非字段内容,或者字段相关的内容,比如:
class Person(models.Model):
first_name = models.CharField(max_length=50)
last_name = models.CharField(max_length=50)
def my_property(self):
return self.first_name + ' ' + self.last_name
my_property.short_description = "Full name of the person"
full_name = property(my_property)