2013-02-05 42 views
1

我有類人:如何編寫有很多關係的模型類?

class Person(models.Model): 
    name = ... 
    [etc] 
    client = models.BooleanField(default=True) 
    image = models.ForeignKey(ImageData, null=True) 

這個類包含的人員和賣方的數據的數據。 而我有班級形象。該模型包含客戶圖像數據和銷售商圖像數據。當賣家創建圖片字段創建者必須是與此賣家的人物關係:

class ImageData(models.Model): 
    creator = models.ForeignKey(Person) 
    [etc] 

此類定義位於一個文件models.py中。當類的ImageData是第一manage.py說:

NameError: name 'Person' is not defined 

當類人是第一:

NameError: name 'ImageData' is not defined 

如何解決這個問題?

+0

您是否正在導入Person類? – redDragonzz

+0

不,這兩個類定義都在一個文件中 – Nips

+0

您可以發佈整個models.py嗎?我認爲你可能在Person之前定義了ImageData。 – redDragonzz

回答

3

如果模型尚未定義,您可以將名稱設置爲字符串,以避免出現此類錯誤。所以更新你的定義爲

image = models.ForeignKey('ImageData', null=True) 

ie。報價大約在ImageData

從這裏文檔ForiegnKey

如果你需要創建一個尚未被定義的模型的關係,您可以使用該模型的名稱,而不是模型對象本身:

class Car(models.Model): 
    manufacturer = models.ForeignKey('Manufacturer') 
    # ... 

class Manufacturer(models.Model): 
    # ...