def persist_graph(request, graph_id): import pygraphviz as P import networkx as N graph = Graph.objects.get(pk=graph_id) dot_path = graph.dot_file.storage.location + '/' + graph.dot_file.name G = P.AGraph() # init empty graph try: G.read(dot_path) #read file nodes = G.nodes() edges = G.edges() Node.objects.filter(graph__id=graph_id).delete() Edge.objects.filter(graph__id=graph_id).delete() for node in nodes: new_node = Node() new_node.graph = graph new_node.name = node new_node.label = node.attr['label'] new_node.save() for edge in edges: new_edge = Edge() new_edge.graph = graph new_edge.name = edge new_edge.save() except: return False return HttpResponse(pygraphviz_graph(request, G)) #response
def connect(cls,entity0,entity1): edge = Edge(entity0, entity1, name=cls.name) edge.save()