首页 > 其他 > 详细

django图书管理系统-外键字段的增删改查

时间:2019-11-20 17:28:45      阅读:140      评论:0      收藏:0      [点我收藏+]

1、创建app02, 并在settings.py里面设置

2、在app02/models.py里面,创建模型

from django.db import models

# Create your models here.

class Book(models.Model):
    name = models.CharField(max_length=32)
    price = models.DecimalField(max_digits=8, decimal_places=2)
    publish_date = models.DateTimeField( auto_now_add= True)
    #添加表关联关系
    publish = models.ForeignKey( to=Publish, on_delete=models.CASCADE )
    authors = models.ManyToManyField( to=Author)


class Publish( models.Model):
    name = models.CharField(max_length=32)
    addr = models.CharField(max_length=64)
    email = models.EmailField()  #内部实现也是charField,定义为EmailField是为了表单校验

class Author(models.Model):
    name = models.CharField(max_length=32)
    age = models.IntegerField()
    #添加表关联关系
    authordetail = models.OneToOneField( to=AuthorDetail, on_delete= models.CASCADE)


#切表,是因为不常用的数据单独放一张表, 对经常用的数据也单独放一张表,提高查询的效率
class AuthorDetail(models.Model):
    addr = models.CharField(max_length=32)
    phone = models.IntegerField()

2、执行makemigrations和migrate, 同步数据库; 然后在对应的表格中添加数据;

给publish出版社表添加数据

技术分享图片

 

 给作者详情表添加数据:

技术分享图片

 

 给作者表添加数据

技术分享图片

 

 

4、创建项目下创建一个test.py文件,并把manage.py里第一句话复制过来; 然后,可以在test.py里面直接调用模型来操作;

技术分享图片

 

 技术分享图片

 

 

5、对Books表执行添加数据

import  os
import  sys

if __name__ == "__main__":
    os.environ.setdefault(DJANGO_SETTINGS_MODULE, untitled1.settings)
    import  django
    django.setup()
    from app02 import  models
    
    #书籍表的增删改查
    #添加数据,方法1
    # models.Book.objects.create( name = "白蛇",price= 66.66,  publish_id = 1 )
    #添加数据,方法2
    publish_obj = models.Publish.objects.filter( pk=3 ).first()
    models.Book.objects.create( name="白蛇", price = 68.89, publish = publish_obj )

技术分享图片

 

 

django图书管理系统-外键字段的增删改查

原文:https://www.cnblogs.com/harryTree/p/11899067.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!