簡體   English   中英

Django檢視ImportError

[英]Django views ImportError

我不知道這種邏輯是否正確,我正在嘗試以2個不同的視圖導入Django視圖。 我有一個這樣的導入鏈:

a.views import b.views
b.views import c.views
c.views import d.views

d.views import b.views

但是當我到達最后一步時,我得到一個ImportError

如果我在d.viewsd.views評論以避免導入b.views ,則它可以工作。

我是Django的新手,有人可以幫助我嗎?

如果我在a.viewsd.views使用語法

from b.views import *

它可以工作,但是代碼不是那么可讀。

如果我用

from b.views import my_func

它不起作用!

這是django shell的錯誤:

>>> import maps.views
Traceback (most recent call last):
  File "<console>", line 1, in <module>
  File "/Users/save/sites/myblog/maps/views.py", line 19, in <module>
    from places.views import *
  File "/Users/save/sites/myblog/places/views.py", line 22, in <module>
    from posts.views import *
  File "/Users/save/sites/myblog/posts/views.py", line 31, in <module>
    from maps.views import render_map_geoloc
ImportError: cannot import name render_map_geoloc

這是因為循環依賴或循環引用。

b depends on c
c depends on d
d depends on b #which depends on c

不知道您使用什么目的。 但是,您確實要對該函數進行顯式導入,並且在使用該函數的上方。

查看您得到的錯誤,可能是因為預期d的某些依賴項來自b,所以如果您from b.views import * ,它將獲得該依賴項。 但是,如果您導入特定的視圖( my_func ),它將丟失該依賴項。

您可以在SO回答線程上找到更多詳細信息-Django應用程序依賴周期

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM