下面我将详细介绍一下 Django 模型层实现多表关系创建和多表操作的完整攻略,并提供两个示例实现.
多表关系创建主要是通过外键关系来实现的,常见的外键关系有一对多关系和多对多关系.
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)
看完小编介绍的,使用一对多关系需要在多的一方定义一个外键,指向一的一方的主键,并指定删除行为.
多对多关系在 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会自动创建一个中间表关系,保存两个表之间的关系.
在多表操作中,我们可以通过 Dango 的 ORM 查询相关表中的数据,以及进行相关的操作,如增加、删除、更新、查询等.
books = Book.objects.filter(author__name='John')
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)
我们可以通过修改对象的属性来更新表中的数据,如下面的例子是修改某一本书的属性:
book = Book.objects.get(title='My Book 1')
book.title = 'New Title'
book.save()
我们可以通过使用delete方法来删除表中的数据,如下面的例子是删除某一本书:
book = Book.objects.get(title='My Book 1')
book.delete()
综合上面所讲的,我们可以使用 Django 的 ORM 来进行多表关系的创建与操作,使得跨表查询和数据的增删改查非常方便.
以上就是土嘎嘎小编为大家整理的Django模型层实现多表关系创建和多表操作相关主题介绍,如果您觉得小编更新的文章只要能对粉丝们有用,就是我们最大的鼓励和动力,不要忘记讲本站分享给您身边的朋友哦!!