ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

Django学习笔记〇六——项目2,图书管理系统

2022-01-09 02:33:07  阅读:191  来源: 互联网

标签:管理系统 models 笔记 出版社 作者 外键 Django True 图书


我们前面做了个用户的管理系统,为了以后的学习,我们这次做一个稍微复杂的项目——图书管理系统。

说他复杂,但是功能上跟前面的第一个项目差不多,但是数据库里多了一些关联,数据库里有三个表:图书,出版社和作者。出版社和图书是一对多的关系,也就是说一个出版社可以出版很多书;书跟作者是多对多的关系:一本书可以有多个作者,当然一个作者可以写很多书。

ORM类的声明

出版社类

出版社类比较简单,就是一个主键外键一个name字段就可以了

class Publisher(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(null = False,max_length=16)

图书类

图书类就稍微复杂一些,通过外键把图书和出版社联系在一起

class Books(models.Model):
    id = models.AutoField(primary_key=True)
    title = models.CharField(null=False,max_length=32)
    publisher = models.ForeignKey(to='Publisher',on_delete=models.CASCADE)

关联外键的时候,参数on_delete是Django2.0版本以后必须显性定义的,否则会报错

作者类

作者类比较有意思,我们前面说了它跟书籍是多对多的关联,这里就要用到Django的ORM里ManyToManyField的方法

class Author(models.Model):
    id = models.AutoField(primary_key=True)
    name = models.CharField(null=False,max_length=10,unique=True)
    book = models.ManyToManyField(to='Books')

我们在定义作者类的时候用到了多对多的外键关联,在索引数据的时候可以通过author查到book,但是要从book查author的时候就要用到反向查询了,具体的使用方法可以看一看前面的笔记——Django内外键的使用

 

标签:管理系统,models,笔记,出版社,作者,外键,Django,True,图书
来源: https://www.cnblogs.com/yinsedeyinse/p/12521470.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有