python-Django-Django 模型层的关联关系(二)

2023-04-23 09:31:02 浏览数 (1)

关联关系操作

Django提供了一系列操作,用于在关联关系上进行查询和操作。下面是一些示例:

通过一对一关系查询

代码语言:javascript复制
person = Person.objects.get(name='John')
address = person.address

在上面的代码中,我们首先获取一个Person实例,然后通过它的address属性获取关联的Address实例。

通过一对多关系查询

代码语言:javascript复制
author = Author.objects.get(name='Jane')
books = author.book_set.all()

在上面的代码中,我们首先获取一个Author实例,然后通过它的book_set属性获取关联的所有Book实例。

通过多对多关系查询

代码语言:javascript复制
course = Course.objects.get(name='Math')
students = course.student_set.all()

在上面的代码中,我们首先获取一个Course实例,然后通过它的student_set属性获取关联的所有Student实例。

添加关联关系

代码语言:javascript复制
author = Author.objects.get(name='John')
book = Book(title='A new book', author=author)
book.save()

在上面的代码中,我们首先获取一个Author实例,然后创建一个新的Book实例,并将它的author属性设置为这个Author实例。最后,我们保存这个新的Book实例,这样它就会与这个Author实例建立一对多的关联关系。

移除关联关系

代码语言:javascript复制
student = Student.objects.get(name='Jane')
course = Course.objects.get(name='Math')
student.courses.remove(course)

在上面的代码中,我们首先获取一个Student实例和一个Course实例,然后调用Student实例的courses属性的remove方法,将这个Course实例从这个Student实例关联的多对多关系中移除。

0 人点赞