- django db Many--to--Many 的使用讲解
- 1.创建工程project django-admin.py startproject d
- 2.创建应用app django-admin.py startapp dd
- 3.修改setting.py
- 修改数据库配置,添加应用app比如admin,自己创建的app,
- 4.修改app的models.py
- 添加测试用的
- class Author(models.Model):
- name=models.CharFiled(max_length=30)
- def __unicode__(self):
- return self.name
- class Book(models,Model):
- name=models.CharFiled(max_length=30)
- authors=models.ManyToManyField(Author)
- def __unicode__(self):
- return self.name
- 5.python manage.py syncdb
- 以上创建了models
- 6.进入python shell
- python manage.py shell
- 执行
- >>> import rlcompleter, readline
- >>> readline.parse_and_bind('tab: complete')
- >>> from dd.models import Author,Book
- >>> Author.objects.create(name="Alen") ## 先创建1个作者
- >>> Author.objects.create(name="Ben")
- >>> Author.objects.create(name="Cart")
- >>> Author.objects.create(name="Dev")
- 先创建4个用户
- 查看创建的作者
- >>>print Author.objects.all()
- 创建1本书
- >>> b1=Book()
- >>> b1.name='python book1'
- >>> b1.save()
- 获取作者
- >>>alen=Author.objects.get(name__exact='Alen')
- >>>d=Author.objects.get(name__exact='Dev')
- 给书增加作者
- >>>b1.authors.add(alen)
- >>> b1.authors.add(d)
- 查看B1这本书的作者
- >>> b1.authors.all()
- [<Author: Alen>, <Author: Dev>]
- 删除书的其中1个作者
- >>> b1.authors.remove(alen)
- >>> b1.authors.all()
- 通过manytomany 通过作者添加书
- >>>alen.book_set.add(b1)
- >>>alen.book_set.create(name='python book2')
- >>> books=Book.objects.all()
- >>> books
- [<Book: python book1>, <Book: python book2>]
- >>> alen.book_set.remove(books[0])
- >>> alen.book_set.all()
- [<Book: python book2>]
- ####################################以上就是例子中的ManytoMany操作######################################
- 1.通过作者添加多本书
- 2.通过书来添加多个作者
转载于:https://blog.51cto.com/kkkkkk/1177554