python - 如何查询Django ORM中的二层数据?

标签 python django

我有两个模型:

class AddressRegion(models.Model):
    name = models.CharField(max_length=8)


class AvailableArea(models.Model):
    name = models.CharField(max_length=8)
    addressregion = models.ForeignKey(AddressRegion, default=1) 

在模板中我想方便地使用查询模型。

如果现在我查询我只知道使用 for 循环的数据:

addressRegions = models.AddressRegion.objects.all()

for ar in addressRegions:   
    availableArea = models.AvailableArea.objects.filter(availablearea = ar)

然后做一些方法来收集它们。

是否有一些简单的方法可以做到这一点?因为我相信 Django 对用户很好。

最佳答案

要获得 child ,您可以使用小写的模型名称 _set 属性:

ar.availablearea_set.all()
#            ^^^^^^^

或添加 related_name

class AvailableArea(models.Model):
    name = models.CharField(max_length=8)
    addressregion = models.ForeignKey(AddressRegion, default=1, related_name='areas')
    #                                                            ^^^^^

并使用它

ar.areas.all()

关于python - 如何查询Django ORM中的二层数据?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46235514/

相关文章:

python - 使用相似矩阵的 sklearn 层次凝聚聚类

python - 使用 python 从 javascript 文本中提取 url

python - 在 Python : delegating __contains__ to contained-object correctly 中模拟成员资格测试

python - 从 AWS EB Linux 实例运行 manage.py

javascript - 优化所需文件夹内的图像

Python:如何将 Voronoi 单元扩展到几何的边界?

python - 使用 python 打印正整数 n 的 collat​​z 序列,每行一个值在 1 处停止

python - Django 测试客户端与 django-pytest

python - 如何在 Python 中创建一个行为类似于 Django 抽象基类的类?

python - Django 模板可能出现 'if element in aList' 吗?