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表中
4.在数据库中添加一条HeroInfo记录,注意关系属性hbook的值应该设置为BookInfo对象
在sqlitestudio中可以看到该条记录,并且hbook_id为对应的BookInfo对象Id
5.再添加一条HeroInfo记录
6.通过下面的命令可以查询HeroInfo的记录,并且可以查询到对应的BookInfo的记录(多查一)
7.从BookInfo查询HeroInfo(一查多)
8.后台管理本地化,修改项目目录下的settings.py,使语言显示中文,时区改为亚洲上海
9.创建超级管理员
10.启动服务器
11.在浏览器中输入http://127.0.0.1:8000/admin,回车,显示后台登陆界面,输入刚才创建的管理员用户名和密码,即可登陆后台管理系统
12.在booktest下的admin.py里面注册后台管理模型
from django.contrib import admin
from .models import BookInfo
# Register your models here.
admin.site.register(BookInfo)
13.刷新浏览器的后台,就会出现app管理栏目
14 点开Book Infos则会显示bookinfo数据库中的所有数据
15.界面上显示的是对象的字符串形式,在BookInfo类中重写__str__()方法,刷新上面的页面则显示btitle
class BookInfo(models.Model):
btitle=models.CharField(max_length=20)
bpub_date=models.DateField()
def __str__(self):
return self.btitle
16.点击右上角的增加Book info按钮 输入书名和出版日期,点保存即可以保存到数据库
17.点开其中一条可以看到具体内容,可以修改内容
18.在上页中点击删除或者在图书列表界面,勾选一本图书后,点开动作下拉框,选择删除,然后点击执行,则显示删除确认界面
点击yes就会从数据库中删除图书
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消息
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列表信息,显示英雄名字
21.点击增加HeroInfo按钮,输入信息,注意布尔值在界面上显示复选框,Hbook会自动加载所有的图书名字,点保存即可以增加成功
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.回到后台管理图书列表,则会看到各属性的内容
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)