博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
python--django模板(model) 2
阅读量:6239 次
发布时间:2019-06-22

本文共 1875 字,大约阅读时间需要 6 分钟。

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

 

转载于:https://www.cnblogs.com/yxwang/p/7845649.html

你可能感兴趣的文章