zoukankan      html  css  js  c++  java
  • 多表操作——添加

    以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("添加成功")
    添加成功以后数据库中的数据如下所示:

    
    
    
    

            

  • 相关阅读:
    c++ STL中的vector与list为什么没有提供find操作?
    转发:CAOZ星球提问。 遇到很大瓶颈,想离职又不敢离职怎么办
    转发 :caoz:数据分析这点事
    那些绕不开的Linux
    记录 《 Bootstrap 基础教程》 学习笔记 第一天
    迈出你的第一步——天助自助者
    this指向问题
    小结
    前端小白的福利
    真实案例分享
  • 原文地址:https://www.cnblogs.com/woshinige/p/9934903.html
Copyright © 2011-2022 走看看