02_DJango后台设计

 

一、创建管理员

  • 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)


 

 


版权声明:本文为ghgxm520原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。