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()
最新评论