如何使Django orm将输入参数转换为查询结果

问题描述

我有这四个表。


    class Topology(models):
        id = models.BigAutoField(primary_key=True)

    class Node(models):
        id = models.AutoField(primary_key=True)
        topology = models.ForeignKey('app.Topology',related_name='topology_nodes',on_delete=models.CASCADE)

    class NodeInterface(models):
        id = models.AutoField(primary_key=True)
        node = models.ForeignKey('app.Node',related_name='node_interfaces',on_delete=models.CASCADE)
        ip = models.GenericIPAddressField(null=True)

    class Event(models):
        id = models.AutoField(primary_key=True)
        node = models.ForeignKey('app.Node',related_name='node_events',on_delete=models.CASCADE)
        dst_ip = models.GenericIPAddressField() 

NodeInterface.ip是唯一的,因此我无法构建fk来连接Event.dst_ipNodeInterface.ip。 我想将Event.dst_ip转换为dst_node_id。因此,我尝试了以下操作:

total_condition = Q()
total_condition.connector = 'OR'

for event in events:
    event_data[event.node.topological_id] = dict(src=event.node_id,dst=[])
    flux_condition = Q()
    flux_condition.connector = 'AND'
    flux_condition.children.append(('node__topological_id',event.node.topological_id))
    flux_condition.children.append(('nic_ip_address',event.dst))

    total_condition.children.append(flux_condition)
interfaces = BNodeInterface.objects.filter(total_condition)

查询后,我无法获得带有查询结果的event.node_id。希望有人可以帮助我解决该问题或教给我另一种实现此要求的方法。THX

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...