Skip to main content
 首页 » 编程设计

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

2025年02月15日21qq号

我有两个模型:

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()