python--django模板(model) 2

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() # 清空被关联对象集合。

 

posted @ 2017-11-16 18:06  嘟囔囔小孩  阅读(245)  评论(0)    收藏  举报