2017-08-18 47 views
-2

the code is not been working due to the error in assigning the path properly please help me with that.嘗試相對進口超出頂層包在Django

+0

https://stackoverflow.com/questions/30669474/beyond-top-level-package-error-in-relative-import閱讀此 –

+0

[超出相對導入中的頂級包錯誤](https:/ /stackoverflow.com/questions/30669474/beyond-top-level-package-error-in-relative-import) –

+0

[如何在Python中執行相對導入?](https://stackoverflow.com/questions/ 72852 /如何到DO-相對進口型的Python) – phd

回答

0

試試這個在您的機型:

#Remove the import statement: from blog.models import sighinmodel 
#Then, inside your model 
user = models.ForeignKey('blog.sighinmodel' , on_delete = None) 

同時,我想指出,這是不是在導入其他模塊的正確方法你models.py。

你應該這樣做:

from appname.models import ModelName 
#for importing from another module's models. 

沒有必要對在Django import語句相對路徑名。 from appname.module import function/class幾乎所有情況下都能正常工作,直到出現循環冗餘,您必須採取多種方法之一。一種是我上面提到的方式:

方法1:簡單地把它放在ModelClass中。不要導入任何東西。

user = models.ForeignKey('blog.sighinmodel' , on_delete = None)

方法2(當循環進口條件沒有產生)

from blog.models import sighinmodel 
class SomeModel(models.Model): 
    user = models.ForeignKey(sighinmodel , on_delete = None) 

注:上面將工作僅當環狀進口沒有發生。如果循環導入條件正在發生,請切換回第一種聲明方法。

希望這會有所幫助。謝謝。

0

此錯誤即將到來,因爲相對導入不允許超出頂層包。你的博客本身就是一個模塊,所以如果你從那裏導入你的模型,它就會起作用。

from blog.models import User, sighinmodel 

我也建議你使用駝峯匹配您的機型名稱,因爲它們是類的命名約定。