我在Django 1.10中开发我的应用程序,其中我有以下模型:
class House(models.Model):
code = models.IntegerField()
......
class Appliance(models.Model):
code = models.IntegerField()
........
class House_appliance(models.Model):
house = models.Foreignkey(House)
appliance = models.Foreignkey(Appliance)
我想进行查询,在那里我可以了解所有拥有共同设备的家庭。 它可能很简单但我无法进行查询。
感谢您的帮助
答案 0 :(得分:0)
from .models import House_appliance
houses = House.objects.filter(appliance_id = name_of_the_appliance)
这将返回一个来自House_appliance的所有对象的查询集,其中的设备等于您选择的任何设备。仔细检查以确保字段名称正确。在实际数据库中查找。
此外,您可能需要考虑将模型重命名为HouseAppliance。根据Python / Django样式指南,这是常见的做法。
答案 1 :(得分:0)
如果您的设备代码是' ABC'
house = House_appliance.objects.values('appliance_id', flat=True).filter(house__code='ABC')
all_house = House.objects.filter(pk__in=house)
所以这里all_house
var将返回所有具有相同设备的房屋
答案 2 :(得分:0)
导入您在以下位置执行查询的模型类:
from models import House_appliances
对该模型类执行查询:
matchedHouses = House_appliances.objects.filter(appliance=SomeApplianceObject).house
matchedHouses
是共享设备对象SomeApplianceObject
的房屋。
.filter(appliance=SomeApplianeObject)
查找该条件的所有对象,在本例中为外键设备。
.house
访问外键house
对象