一、导入django模型obj
二、对obj的外键集进行循环
# 生成graph的dot对象
def graph_dot():
'''
1.注意要将数值型转为字符型
'''
dot = Digraph()
dot.node_attr={'fontname':'Song'}
obj = import_model()
obj_id_str = str(obj.id)
dot.node(obj_id_str,obj.name)
# 查出上面一级的信息
obj_parent_foreign_id = str(obj.parent_foreign.id)
dot.node(obj_parent_foreign_id,obj.parent_foreign.name)
dot.edge(obj_parent_foreign_id,obj_id_str)
# 查出下面两级的信息
for r_1 in obj.recordevent_set.all():
dot.node(str(r_1.id),r_1.name)
dot.edge(obj_id_str,str(r_1.id))
for r_2 in r_1.recordevent_set.all():
dot.node(str(r_2.id),r_2.name)
dot.edge(str(r_1.id),str(r_2.id))
return dot
三、以前的方法(不推荐),将node存入list,最后统一做成edge
# 生成graph的dot对象
def graph_dot():
'''
1.注意要将数值型转为字符型
'''
obj = import_model()
dot = Digraph()
dot.node_attr={'fontname':'FangSong'}
dot.node(str(obj.id),obj.name)
node_list = []
for r in obj.recordevent_set.all():
print(r.name)
dot.node(str(r.id),r.name)
node_list.append(str(r.id))
for li in node_list:
dot.edge(str(obj.id),li)
return dot