Django 一个字段有多个外键

Django 一个字段有多个外键,django,django-models,orm,Django,Django Models,Orm,我有两个班;设备和连接。我试图在他们之间建立联系 设备类别 class Devices(models.Model): device_no = models.IntegerField(primary_key=True) device_name= models.CharField(max_length=512) 连接类 class Connections(models.Model): connection_id = models.IntegerField(primary_k

我有两个班;设备和连接。我试图在他们之间建立联系

设备类别

class Devices(models.Model):
    device_no = models.IntegerField(primary_key=True)
    device_name= models.CharField(max_length=512)
连接类

class Connections(models.Model):
    connection_id = models.IntegerField(primary_key=True)
    device_name1 = models.CharField(max_length=512)  
    device_name2 = models.CharField(max_length=512) 
    device_no1= models.ForeignKey(Devices, on_delete=models.CASCADE, db_column="device_no1", related_name="dev1_no")
    device_no2= models.ForeignKey(Devices, on_delete=models.CASCADE, db_column="device_no2", related_name="dev2_no") 
出于安全考虑,我更改了变量名

我的目标是在设备1和设备2之间建立连接。这两个都有相同的规格。当我这样使用它时,它不会返回任何错误。但是,当我尝试进行查询时,即:

Connections.objects.filter(device1_no=dev_no)
它不返回设备类的任何成员。它只返回连接类成员。我也试过

Connections.objects.filter(device_no1__device_no=12)
有什么建议吗?

您可以这样尝试:

for conn in Connections.objects.filter(device_no1=dev_no):
    print(conn.device_no2)
或者使用反向关系()

您可以这样尝试:

for conn in Connections.objects.filter(device_no1=dev_no):
    print(conn.device_no2)
或者使用反向关系()


在您的评论之后,我意识到
Connections.objects.filter(device1\u no=dev\u no)
正在将设备对象返回到device1\u no变量。我已经访问了
result.device1\u no.ne\u name
以了解我的要求。感谢您的帮助。在您的评论之后,我意识到
Connections.objects.filter(device1\u no=dev\u no)
正在将设备对象返回到device1\u no变量。我已经访问了
result.device1\u no.ne\u name
以了解我的要求。谢谢你的帮助。