Ich graphviz mit meinen Django-Modellen für jeden Automaten Graphen aus dem folgenden Python-Skript zu machen:Graphviz - Attribute: Objekt hat kein Attribut ‚Partition‘
alphabets = automata.alphabet_set.all()
states = automata.states_set.all()
transitions = automata.transition_set.all()
dot = gv.Graph()
for state in states:
dot.node(state.state, state.state)
for transition in transitions:
dot.edge(transition.current_state, transition.next_state, transition.input)
dot.render(automata.id + '.gv', view=True)
Und das sind meine Modelle:
class Automata(models.Model):
pass
class Alphabet(models.Model):
alphabet = models.CharField()
automata = models.ForeignKey(Automata, on_delete = models.CASCADE)
class States(models.Model):
state = models.CharField()
automata = models.ForeignKey(Automata, on_delete = models.CASCADE)
class Transition(models.Model):
current_state = models.ForeignKey(States, on_delete = models.CASCADE, related_name = 'current')
input = models.ForeignKey(Alphabet, on_delete = models.CASCADE)
next_state = models.ForeignKey(States, on_delete = models.CASCADE, related_name = 'next')
automata = models.ForeignKey(Automata, on_delete = models.CASCADE)
aber jedes Mal wenn ich versuche, mein Skript, das ich die folgende Fehlermeldung auszuführen:
Traceback (most recent call last):
File "make_graph.py", line 36, in <module>
dot.edge(transition.current_state, transition.next_state, transition.input)
File "/home/nids/automata/auto/lib/python3.5/site-packages/graphviz/dot.py", line 116, in edge
tail_name = self.quote_edge(tail_name)
File "/home/nids/automata/auto/lib/python3.5/site-packages/graphviz/lang.py", line 63, in quote_edge
node, _, rest = identifier.partition(':')
AttributeError: 'States' object has no attribute 'partition'
weiß, dass ich keinen Fehler, wenn ich einfach tun: dot.edge('A', 'B', 'edge label')
Ich kann nicht glauben, dass ich das verpasst habe. Vielen Dank! Behoben, indem es durch 'dot.edge ersetzt wurde (transition.current_state.state, transition.next_state.state, transition.input.alphabet)' – Meryem
Süß! Ich bin froh, dass ich dir helfen konnte! – wpercy