zoukankan      html  css  js  c++  java
  • Django多对多表的三种创建方式,MTV与MVC概念

        MTV与MVC
            MTV模型(django):
                M:模型层(models.py)
                T:templates
                V:views
            MVC模型:
                M:模型层(models.py)
                V:视图层(views.py)
                C:控制器(Controller) urls.py
            本质:django的MTV也是MVC
            
        
        多对多表三种创建方式
        1.第一种 django orm自动帮我们创建
            class Book(models.Model):
            name = models.CharField(max_length=32)
            authors = models.ManyToManyField(to='Author')
    
    
            class Author(models.Model):
                name = models.CharField(max_length=32)
        
        2.第二种纯手动创建第三张表
        
            class Book(models.Model):
                name = models.CharField(max_length=32)
    
            class Author(models.Model):
                name = models.CharField(max_length=32)
    
            class Book2Author(models.Model):
                book = models.ForeignKey(to='Book')
                author = models.ForeignKey(to='Author')
                info = models.CharField(max_length=32)
        
        3.第三种半自动创建第三张表(可扩展性高,并且能够符合orm查询)
            class Book(models.Model):
                name = models.CharField(max_length=32)
                # 第三种创建表的方式
            #想用django的一些方法,于是告诉django这两张表有多对多关系
                authors = models.ManyToManyField(to='Author',through='Book2Author',through_fields=('book','author'))   
    
            class Author(models.Model):
                name = models.CharField(max_length=32)
                # book = models.ManyToManyField(to='Book',through='Book2Author',through_fields=('author','book'))
    
    
            class Book2Author(models.Model):
                book = models.ForeignKey(to='Book')
                author = models.ForeignKey(to='Author')
                info = models.CharField(max_length=32)
        # 第三种多对多关系不能使用多对多字段的增删改查方法 add(),set(),remove(),clear()
  • 相关阅读:
    回溯法之图的着色问题
    回溯法基本思想
    L2-006 树的遍历
    P1540 机器翻译
    P1067 多项式输出
    C++STL之map映照容器
    C++STL之multiset多重集合容器
    C++STL之set集合容器
    C++之string基本字符系列容器
    C++STL之vector向量容器
  • 原文地址:https://www.cnblogs.com/dongxixi/p/11042883.html
Copyright © 2011-2022 走看看