django 1对多orm查询方法
时间: 2023-06-26 18:06:11 浏览: 107
django的ORM操作 增加和查询
在 Django 中,使用 ForeignKey 字段创建一个一对多的关系。一旦设置了这种关系,你可以使用 related_name 属性来访问相关对象。下面是一些常用的查询方法:
1. 获取与一个对象相关联的所有子对象
```python
parent = Parent.objects.get(id=1)
children = parent.child_set.all()
```
2. 获取与一个对象相关联的所有子对象的数量
```python
parent = Parent.objects.get(id=1)
num_children = parent.child_set.count()
```
3. 获取与一个对象相关联的所有子对象的某个字段的值
```python
parent = Parent.objects.get(id=1)
child_names = parent.child_set.values_list('name', flat=True)
```
4. 获取与一个对象相关联的所有子对象的某个字段的值,并去重
```python
parent = Parent.objects.get(id=1)
child_names = parent.child_set.values_list('name', flat=True).distinct()
```
5. 获取与一个对象相关联的所有子对象,按照某个字段进行排序
```python
parent = Parent.objects.get(id=1)
children = parent.child_set.order_by('name')
```
6. 获取与一个对象相关联的所有子对象,按照某个字段进行反向排序
```python
parent = Parent.objects.get(id=1)
children = parent.child_set.order_by('-name')
```
注意:在上面的代码中,Parent 和 Child 是两个模型类的名称,需要根据实际情况进行调整。
阅读全文