django 中介模型

为什么需要中介模型

 因为两张表如果是多对多关系,django自动创建的第三张表,只有三个字段,而有时候,我们业务逻辑需要更多的字段,就需要用上中介模型了

场景:
                    student
                       id   name
                        1    A
                        1    B
                       
                    course
                        id   name                     
                         1    python
                         2    linux
                   
                
                    score
                    
                         id      student_id        course_id    score
                          1            1                1         78
                          2            1                2         67
                          
                          
                          
                    class  Score(models.Model):
                           student=ForeignKey("Student")
                           course=ForeignKey("Course")
                           score=models.IntegerField()    //多一个score 字段
                    # 中介模型方式:
                            
                            
                            class Student(models.Model):
                                name = models.CharField( max_length=32)
                                courses=models.ManyToManyField("Courses",through="Score")
                                
                            class Course(models.Model):
                                name = models.CharField( max_length=32)    
                                                                
                            class Score(models.Model):
                                 student=models.ForeignKey("Student")
                                 course=models.ForeignKey("Course")
                                 score=models.IntegerField()
                                 
                                 

 

posted @ 2018-12-04 22:52  团子emma  阅读(126)  评论(0)    收藏  举报