Login
网站首页 > 文章中心 > 其它

Django模型层实现多表关系创建和多表操作

作者:小编 更新时间:2023-08-07 10:23:57 浏览量:164人看过

下面我将详细介绍一下 Django 模型层实现多表关系创建和多表操作的完整攻略,并提供两个示例实现.

1.多表关系创建

多表关系创建主要是通过外键关系来实现的,常见的外键关系有一对多关系和多对多关系.

1.1 一对多关系


Django模型层实现多表关系创建和多表操作-图1

from django.db import models class Author(models.Model): return self.title

注意到Book模型类中,ForeignKey字段表示外键关系,on_delete表示删除关联表记录时的行为,这里我们采用的是级联删除.

另一个例子是电商系统中购物车和商品之间的关系,一个购物车中可以有多个商品,是一对多关系.

from django.db import models

class Cart(models.Model):
quantity = models.PositiveIntegerField(default=0)

看完小编介绍的,使用一对多关系需要在多的一方定义一个外键,指向一的一方的主键,并指定删除行为.

1.2 多对多关系

多对多关系在 Django 中使用ManyToManyField类型来实现,它通过一个中间表来连接两个模型之间的关系.

from django.db import models

class Author(models.Model):
    return self.title

注意到Book模型类中,ManyToManyField字段指向了Author模型类.Django 会自动创建一个名为book_authors的中间表来保存两个模型之间的关系,我们无需在数据库中手动创建.

另一个例子是用户与组之间的关系.一个用户可以属于多个组,一个组也可以有多个用户.

from django.db import models

class User(models.Model):
    return self.name

看完小编介绍的,使用多对多关系需要在其中一个模型中定义ManyToManyField,随后Django会自动创建一个中间表关系,保存两个表之间的关系.

2.多表操作

在多表操作中,我们可以通过 Dango 的 ORM 查询相关表中的数据,以及进行相关的操作,如增加、删除、更新、查询等.

2.1 查询数据

books = Book.objects.filter(author__name='John')

2.2 增加数据

author = Author.objects.create(name='John', email='john@example.com')

book1 = Book.objects.create(title='My Book 1', author=author)
book2 = Book.objects.create(title='My Book 2', author=author)

2.3 更新数据

我们可以通过修改对象的属性来更新表中的数据,如下面的例子是修改某一本书的属性:

book = Book.objects.get(title='My Book 1')
book.title = 'New Title'
book.save()

2.4 删除数据

我们可以通过使用delete方法来删除表中的数据,如下面的例子是删除某一本书:

book = Book.objects.get(title='My Book 1')
book.delete()

综合上面所讲的,我们可以使用 Django 的 ORM 来进行多表关系的创建与操作,使得跨表查询和数据的增删改查非常方便.

以上就是土嘎嘎小编为大家整理的Django模型层实现多表关系创建和多表操作相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!

版权声明:倡导尊重与保护知识产权。未经许可,任何人不得复制、转载、或以其他方式使用本站《原创》内容,违者将追究其法律责任。本站文章内容,部分图片来源于网络,如有侵权,请联系我们修改或者删除处理。

编辑推荐

热门文章