1.一对多的表
创建表
from django.db import models# Create your models here.class Book(models.Model): nid=models.AutoField(primary_key=True) title=models.CharField(max_length=32) pubDate=models.DateField() price=models.DecimalField(max_digits=6,decimal_places=2) publisher=models.ForeignKey(to="Publish") #建立表与表之间的关系class Publish(models.Model): name=models.CharField(max_length=32) addr=models.CharField(max_length=32) tel=models.BigIntegerField()
2. 添加
2.1 单表添加
方式1
publish_obj=models.Publish(name="人民出版社",city="北京")publish_obj.save() # 将数据保存到数据库
方式2 返回值publish_obj是添加的记录对象
publish_obj=models.Publish.objects.create(name="人民出版社",city="北京")
2.2 一对多添加
方式1:
publish_obj=models.Publish.objects.get(nid=1)models.Book.objects.create(title="金瓶眉",price=665,publish=publish_obj)
方式2:
models.Book.objects.create(title="金瓶眉",price=665,publish_id=1)
2.3 多对多添加
book_obj=models.Book.objects.create(title="追风筝的人",price=69,publish_id=1)author_1=models.Author.objects.create(name="jack",age=23)author_2=models.Author.objects.create(name="tom",age=32)book_obj.authors.add(author_1,author_2) # 将某个特定的model对象添加到# 被关联对象集合中。 等价于 book_obj.authors.add(*[])book_obj.authors.create() # 创建并保存一个新对象,然后将这个对象加被关联对象的集合中,然后返回这个新对象。
3. 编辑
author=models.Author.objects.get(id=5)author.name="jack"author.save()models.Publish.objects.filter(id=3).update(name="教育出版社")update()方法对于任何结果集(QuerySet)均有效
这意味着你可以同时更新多条记录update()方法会返回一个整型数值,表示受影响的记录条数。
4. 删除
删除方法就是delete()。它运行时立即删除对象而不返回任何值。例如:
e.delete()
每个 QuerySet 都有一个 delete() 方法,它一次性删除 QuerySet 中所有的对象。
例如
Entry.objects.filter(title="北京").delete()
要牢记这一点:无论在什么情况下,QuerySet 中的 delete() 方法都只使用一条 SQL 语句一次性删除所有对象,而并不是分别删除每个对象。
删除多对多关系表时,可以用如下方法进行删除
book_obj.authors.remove() # 将某个特定的对象从被关联对象集合中去除。 book_obj.authors.remove(*[])book_obj.authors.clear() # 清空被关联对象集合。