booktest-2

1.增加HeroInfo类 

from django.db import models

# Create your models here.

class BookInfo(models.Model):
    btitle=models.CharField(max_length=20)
    bpub_date=models.DateField()


class HeroInfo(models.Model):
    hname=models.CharField(max_length=20)
    hgender=models.BooleanField(default=False)
    hcomment=models.CharField(max_length=128)
    hbook=models.ForeignKey('BookInfo',on_delete=models.CASCADE)

2.执行数据库迁移

3.在项目的终端中输入下面的命令保存数据到BookInfo表中

booktest-2_第1张图片

4.在数据库中添加一条HeroInfo记录,注意关系属性hbook的值应该设置为BookInfo对象

booktest-2_第2张图片

在sqlitestudio中可以看到该条记录,并且hbook_id为对应的BookInfo对象Id

5.再添加一条HeroInfo记录

booktest-2_第3张图片

6.通过下面的命令可以查询HeroInfo的记录,并且可以查询到对应的BookInfo的记录(多查一)

booktest-2_第4张图片

7.从BookInfo查询HeroInfo(一查多)

8.后台管理本地化,修改项目目录下的settings.py,使语言显示中文,时区改为亚洲上海

booktest-2_第5张图片

9.创建超级管理员

booktest-2_第6张图片

10.启动服务器

booktest-2_第7张图片

 

11.在浏览器中输入http://127.0.0.1:8000/admin,回车,显示后台登陆界面,输入刚才创建的管理员用户名和密码,即可登陆后台管理系统

booktest-2_第8张图片

booktest-2_第9张图片

12.在booktest下的admin.py里面注册后台管理模型

from django.contrib import admin
from .models import BookInfo
# Register your models here.


admin.site.register(BookInfo)

 13.刷新浏览器的后台,就会出现app管理栏目

booktest-2_第10张图片

14 点开Book Infos则会显示bookinfo数据库中的所有数据

booktest-2_第11张图片

15.界面上显示的是对象的字符串形式,在BookInfo类中重写__str__()方法,刷新上面的页面则显示btitle

class BookInfo(models.Model):
    btitle=models.CharField(max_length=20)
    bpub_date=models.DateField()

    def __str__(self):
        return  self.btitle

 

booktest-2_第12张图片

16.点击右上角的增加Book info按钮 输入书名和出版日期,点保存即可以保存到数据库

booktest-2_第13张图片

booktest-2_第14张图片 

17.点开其中一条可以看到具体内容,可以修改内容

booktest-2_第15张图片

 

18.在上页中点击删除或者在图书列表界面,勾选一本图书后,点开动作下拉框,选择删除,然后点击执行,则显示删除确认界面

 

booktest-2_第16张图片 

点击yes就会从数据库中删除图书

booktest-2_第17张图片 

19,在admin.py里面注册HeroInfo

from django.contrib import admin
from .models import BookInfo,HeroInfo
# Register your models here.


admin.site.register(BookInfo)
admin.site.register(HeroInfo)

 刷新后台首页,则显示HeroInfo消息

booktest-2_第18张图片

20.在HeroInfo模型类中重写__str__()

class HeroInfo(models.Model):
    hname=models.CharField(max_length=20)
    hgender=models.BooleanField(default=False)
    hcomment=models.CharField(max_length=128)
    hbook=models.ForeignKey('BookInfo',on_delete=models.CASCADE)
    def __str__(self):
        return self.hname

刷新后台Heroinfo列表信息,显示英雄名字

booktest-2_第19张图片

21.点击增加HeroInfo按钮,输入信息,注意布尔值在界面上显示复选框,Hbook会自动加载所有的图书名字,点保存即可以增加成功

booktest-2_第20张图片 

 

booktest-2_第21张图片

22.在admin.py里面增加图书模型管理类,并在注册模型类方法中指定该管理类

from django.contrib import admin
from .models import BookInfo,HeroInfo
# Register your models here.

class BookInoAdmin(admin.ModelAdmin):
    list_display = ['id','btitle','bpub_date']

admin.site.register(BookInfo,BookInoAdmin)
admin.site.register(HeroInfo)

23.回到后台管理图书列表,则会看到各属性的内容

booktest-2_第22张图片

24.同理修改Heroinfo列表显示

from django.contrib import admin
from .models import BookInfo,HeroInfo
# Register your models here.

class BookInoAdmin(admin.ModelAdmin):
    list_display = ['id','btitle','bpub_date']

class HeroInfoAdmin(admin.ModelAdmin):
    list_display = ['id','hname','hcomment']

admin.site.register(BookInfo,BookInoAdmin)
admin.site.register(HeroInfo,HeroInfoAdmin)

booktest-2_第23张图片

你可能感兴趣的:(python)