• 多表操作——添加


    以Book表、Author表、Publish(出版社)表为例

    外键建在多的一方

    class  Book(models.Model):

             name=models.charField(max_length=20)

             publish=models.ForeignKey("Publish")    #django会默认在数据库中的外键加个_id

     class  Publish(models.Model):

               name=models.CharField(max_length=100)

     class  Author(models.Model):

               name=modles.CharField(max_length=40)

    执行python  manage.py  makemigrations创建数据库

    多表操作(一对多)

    1、添加

    def  addbook():

           Book.objects.create(name="python",publish_id=2)

           return HttpResponse("添加成功")

    2、对publish直接赋值,publish后面跟一个对象

    publish_id=Publish.objects.filter(name="昆明出版社")[0]

     Book.objects.create(name="python",publish_id=publish_id)

    3、多表添加(多对多)

    书本和作者表(多对多)

    models.py中代码如下:

    (1)例如:书本名称为天涯明月刀,作者为古龙、倪匡

    首先从book表中查询出天涯明月刀这本书,从作者表种查找出古龙和倪匡两位作者,执行book.author.add()

    代码如下(查找出的数据都只能有一条,用get):

    def  addduo_duo(request):
    book_1=Book.objects.get(name="天涯明月刀")
    author1=Author.objects.get(name="古龙")
    author2=Author.objects.get(name="倪匡")
    book_1.author.add(author1,author2)
    return HttpResponse("添加成功")
    添加成功以后数据库中的数据如下所示:

    
    
    
    

            

  • 相关阅读:
    Dependent Parameters in Concurrent Program using Special Value Set
    USER Management | Role Categories | Roles | Indirect Responsibilities
    asp.net core 1.0初识
    ASP.NET Core管道深度剖析
    linux图机界面机制
    类对象管理方式
    UNICODE串转换成char类型串的四种方法
    进程句柄表与创建句柄表
    虚拟化技术
    Windows基于Apache的svn服务器配置
  • 原文地址:https://www.cnblogs.com/woshinige/p/9934903.html
Copyright © 2020-2023  润新知