夜猫的个人小站

       继续码起来

关于作者

微博北极熊硬糖
北京海淀区

Django的Many-to-Many模型

标签

from django.db import models  

class Author(models.Model):  
    first_name = models.CharField(max_length=30)  
    last_name = models.CharField(max_length=40)  
    email = models.EmailField()  

    def __unicode__(self):  
        return self.name  

    class Meta:  
        db_table = "author"       

class Book(models.Model):  
    title = models.CharField(max_length=200)  
    authors = models.ManyToManyField(Author)  

    def __unicode__(self):  
        return self.title  

    class Meta:  
        db_table = "book"    


访问多值:
一本书的所有作者:
b = Book.objects.get(id=50)
b.authors.all()
b.authors.filter(first_name='Adam')
反向也可以,一个作者的所有书:
a = Author.objects.get(id=1)
a.book_set.all()
给多对多字段添加值(添加多对多关系):
a = Author.objects.get(id=1)
b = Book.objects.get(id=50)
b.authors.add(a)
从多对多字段中删除值(删除多对多关系):

a = Author.objects.get(id=1)
b = Book.objects.get(id=50)
b.authors.remove(a) 或者 b.authors.filter(id=1).delete()

最新评论

发表评论
回到顶部