zoukankan      html  css  js  c++  java
  • Django里orm关系表创建

    Django里orm关系表创建

    from django.db import models
    
    # Create your models here.
    class Book(models.Model):
        title = models.CharField(max_length=32)
        # 总共八位 小数占两位
        price = models.DecimalField(max_digits=8,decimal_places=2)
    
        # 出版社和书是一对多的关系  外键字段键在多的一方
        publish_id = models.ForeignKey(to='Publish')  # to指定跟谁是外键关联的  默认关联的是表的主键字段
        """
        ForeignKey字段  django orm在创建表的时候 会自动给该字段添加_id后缀
        """
        # 书和作者是多对多的关系  外键字段建在任何一方都可以  但是 推荐你建在查询频率比较高的一方
        authors = models.ManyToManyField(to='Author')
        """authors字段仅仅是一个虚拟字段 不会再表中展示出来  仅仅是用来告诉django orm 书籍表和作者表示多对多的关系
            自动创建第三张表 
        """
    
    class Publish(models.Model):
        name = models.CharField(max_length=32)
        addr = models.CharField(max_length=255)
    
    
    class Author(models.Model):
        name = models.CharField(max_length=32)
        phone = models.BigIntegerField()
        # 一对一字段 建在哪张表都可以  但是推荐你建在 查询频率比较高的那张表
        author_detail = models.OneToOneField(to='AuthorDetail')
        """
            OneToOneField字段  django orm在创建表的时候 会自动给该字段添加_id后缀
    
            """
    
    class AuthorDetail(models.Model):
        addr = models.CharField(max_length=255)
        age = models.IntegerField()
    

    千万不能让自己的表里面的外键的字段名字设置为后缀_id,因为他会自动帮我们加上。

  • 相关阅读:
    树的子结构(剑指offer_26)
    合并两个排序的链表(剑指offer_25)
    反转链表(剑指offer_24)多看多思多想
    链表中环的入口结点(剑指offer_23)
    链表中倒数第k个节点
    调整数组顺序使奇数位于偶数前面(剑指offer_21)
    表示数值的字符串(剑指offer_20)
    1676. 跳石头
    1670. 回合制游戏
    1667. 区间统计(回顾)
  • 原文地址:https://www.cnblogs.com/chanyuli/p/11722573.html
Copyright © 2011-2022 走看看