我在使用网址模式导入我的应用时出现问题,但一切似乎都已到位。我在中从fairy_app导入视图中收到错误,并且错误名称'新闻'未定义
目录:
fairy-
fairy-
_init_.py
settings.py
urls.py
wsgi.py
fairy_app-
_init_.py
admin.py
models.py
tests.py
views.py
db.fairy
manage.py
views.py 的
from django.shortcuts import render
from django.views.generic import TemplateView
# Create your views here.
class News(TemplateView):
template_name = 'news.html'
urls.py 的
from django.conf.urls import patterns, include, url
from django.contrib import admin
from fairy_app.views import News
urlpatterns = patterns('',
# Examples:
# url(r'^$', 'fairy.views.home', name='home'),
# url(r'^blog/', include('blog.urls')),
url(r'^admin/', include(admin.site.urls)),
url(r'^news/', News.as_view()),
)
setting.py 的
INSTALLED_APPS = (
'django.contrib.admin',
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.messages',
'django.contrib.staticfiles',
'fairy_app',
)
答案 0 :(得分:1)
在您的urls.py中,您无需导入即可引用新闻视图。您将视图文件导入为模块。
所以你可以这样做:
views.News.as_view()
或:
from fairy_app.views import News
如果您有很多视图类,第二种方式会更短但会变得不方便,所以我更喜欢第一种方式。
答案 1 :(得分:1)
我发现了同样的问题,但得到了解决。
在应用程序级别为URL创建一个新的python文件 在fairy // urls文件中使用include函数来包含应用程序的所有其他URL并在新文件中导入视图
例如;
#in url.py
urlpatterns = [
url(r'^admin/', admin.site.urls),
url(r'^greet/',include('greetings.url')),
]
#created a new file(url.py) in greetings app
#in greetings/url.py
from . import views
urlpatterns = [
url(r'^$',views.greet),
]
#greet is the function in my views`
答案 2 :(得分:0)
我有同样的问题。我通过给出完整的路径来解决它
from fairy.fairy_app.views
或者
from ..fairy_app.views