diff --git a/epdb/models.py b/epdb/models.py index 324fe301..641caf2e 100644 --- a/epdb/models.py +++ b/epdb/models.py @@ -1573,14 +1573,12 @@ class Pathway(EnviPathModel, AliasMixin, ScenarioMixin): while len(queue): current = queue.pop() processed.add(current) - nodes.append(current.d3_json()) - for e in self.edges: - if current in e.start_nodes.all(): - for prod in e.end_nodes.all(): - if prod not in queue and prod not in processed: - queue.append(prod) + for e in self.edges.filter(start_nodes=current).distinct(): + for prod in e.end_nodes.all(): + if prod not in queue and prod not in processed: + queue.append(prod) # We shouldn't lose or make up nodes... assert len(nodes) == len(self.nodes)