0
我試圖做一個簡單的樹應用程序,接受用戶的輸入,並添加節點到基於輸入的樹結構。我希望樹的每個節點都是一個通用模型的實例,稱爲節點。樹與Django模型 - 不同的方法
一個條目最多有兩部分:一個父項,它是字符串的開始,直到第一個圓括號,還有一個子項,它在括號中。
例如,假設用戶輸入以下內容:
"animal(cat)"
"animal(dog)"
"dog(golden retriever)"
"organic_life_form(animal)"
這應該產生這種結構的樹:
organic_life_form
|
animal
/ \
dog cat
|
golden retriever
我做了定義我的「節點」的模式是錯誤的,但我不知道如何解決它。
class Node(models.Model):
name = models.CharField(max_length=200)
parent = models.ForeignKey(Node)
nodes = models.IntegerField(default=0)
def __unicode__(self):
return self.name
顯然我不允許使用另一個節點作爲我的外鍵「父」,因爲「節點」尚未定義。這似乎是一個非常基本的錯誤,但我仍然不明白爲什麼不允許這樣做。
任何人都可以解釋爲什麼我無法使用另一個「節點」作爲外鍵?如果這是一個失敗的原因,那麼定義我想要的結構類型的更好方法是什麼?
其實我爲了學習而自己嘗試這個,所以我會在沒有現有庫的情況下嘗試這個。似乎應該有其他方法來模擬我所關心的結構,但我想不出任何方法。 –
正如我所說的,使用''Node''而不是'Node'可以讓你使用你當前的方法 –