zoukankan      html  css  js  c++  java
  • django mysql 表的一对一 一对多 多对多

    表结构的设计

      一对一

      多对一  将key写在多

      多对多

    外键:

      描述  多对一的关系

      写在多的一方

      class Book(models.Model)

        title = models.CharField(max_length=32,unique=Ture)

        publisher = models.ForeignKey (to=Publisher,on_deleete=models.CASADE)

        publisher = models.ForeignKey(to='Publisher', on_delete=models.CASCADE)  加双引号,是映射

      book_obj.publisher  --->> 书籍关联的对象

      book_obj.publisher_id --->> 书籍关联的对象id 直接从数据库获取的  可以直接点获得   

      设置外键(关联出版社对象 )  修改

      book_obj.publisher   = 出版社对象

      book_obj.save()

      book_obj.publisher_id = 1

      book_obj.save()

      创建:

      models.Book.objects.create(title='新的书名',publisher=models.Publisher.objects.get(id=1))

      models.Book.objects.create(title='新的书名',publisher_id=1)

    多对多

       当要获取所有的对象中的另一个对象的时候,需要在函数中all()  在另一个html中all

      teacher_all = models.teacher_list.objects.all()   这里的all取得是是所有的对象
      {% for teacher in teacher_all %}    这里是获取每个对象
        {% for cls in teacher.cls.all %}  这里获取的是是cls中的对象

      class Author(models.Model):

        name = models.CharField(max_length=32,unique=Ture)

        books = models.ManyToManyField('book')

      

      author_obj.books   --->>> 不是关联的对象,是管理的对象

      author_obj.books   ---->> 获取到跟作者关联的所有书籍对象

      author_obj.books.set([1,2,3,4])  ---->>不是author_obj.save() 增加和修改时候使用set

      在获取多个对象时使用getlist  获取多个

      

      模板相关
     
      if判断
       {% if book in edit_obj.books.all %}
        <option value="{{ book.id }}" selected>{{ book.title }}</option>
       {% else %}
        <option value="{{ book.id }}">{{ book.title }}</option>
       {% endif %}
      
      
       {% if 条件1 %}
        操作1
       {% elif 条件2 %}
        操作2
       {% else %}
        操作3
       {% endif %}
      
      for循环中
       {% for i in name_list %}
        {{ forloop.first }} 第一次循环
        {{ forloop.last }} 最后一次循环
       {% endfor %}

      

  • 相关阅读:
    webpack:loader编写
    架构之路:从概念开始
    AtCoder Regular Contest 114(A-C)
    12-UE4-控件类型
    10-UE4-蓝图定义简介
    11-UE4-UMG UI设计器
    UE4-目录结构简介
    UE4-字符串
    官方Spring Boot starters整理
    Java是引用传递还是值传递?
  • 原文地址:https://www.cnblogs.com/lnrick/p/9614218.html
Copyright © 2011-2022 走看看