由于下面这个从视图映射Django Url的方法在Django 1.9及以上版本中是不支持的
url (r/$ ^接触,newsletter.views。联系",name ="接触"),
url (r '关于/$ ^ ',' home.views。关于"name = ' '),
这是当前位置
from newsletter import views
url (r/$ ^的观点。关于"name = ' '),
如何映射我的url为2个不同的应用程序视图
from home import views
from newsletter import views
url (r ^ home/美元,"观点。Home ', name=' Home '), # location in Home
url (r/$ ^的观点。About ', name=' About '), # location in newsletter
像我上面做的映射会导致错误,所以我需要帮助。New to Django
我不明白你的意思,使用一个完全限定的模块名被弃用,因为它是一个核心python结构。但是你可以通过使用"import as"语句将两个不同的模块绑定到不同的别名来管理包含相同名称的子模块。
的例子:
from home import views as home_view
from newsletter import views as news_view
然后您可以在整个声明的命名空间中使用别名home_view
和news_view
来引用每个模块,而不是views
。
你可以在Python文档中查看import语句的语法:
如果请求的模块被成功检索,它将被创建可以通过以下三种方式之一在本地命名空间中获得:
- 如果模块名后面跟as,那么as后面的名称就是直接绑定到导入的模块。
- 如果没有指定其他名称,被导入的模块是一个顶级模块,即模块的名称作为对导入模块
的引用绑定在本地命名空间中。- 如果要导入的模块不是顶级模块,则使用包含该模块的顶级包的本地命名空间作为对顶级包的引用。导入的模块必须使用其完整限定名而不是直接
尝试:
from home import views as home_views
from newsletter import views
url(r'^home/$', 'home_views.home', name='home'), #located in home
url(r'^about/$', 'views.about', name='about'), #located in newsletter
作为替代方案,您只能导入视图函数:
from home.views import home
from newsletter.views import about
urlpatterns = [
url(r'^home/$', home, name='home'),
url(r'^about/$', about, name='about'),
]