如下,Author和Book两个model,

class Author(models.Model):    
    first_name = models.CharField(max_length=30)    
    last_name = models.CharField(max_length=40)    
    email = models.EmailField()    
        
class Book(models.Model):    
    title = models.CharField(max_length=200)    
    authors = models.ManyToManyField(Author)


6.1 从书籍出发获取作者

b = Book.objects.get(id=2) 
b.authors.all()   #查询id为2的书籍的所有作者
b.authors.filter(first_name='jack') #查询id为2的书籍的作者中 firstname是'jack'的作者

 

6.2 从作者出发获取书籍

a = Author.objects.get(id=2)  
a.book_set.all() 查询发作者表中id=2的作者的所有书籍

  

注意:当关联同一个模型的字段大于一个时,要使用related_name参数来指定表名,而6.2中的查询则可以使用a.related_name.all()来查询

您来留言:
Captcha