我使用django 1.4.2创建了一个django项目。这个项目中有一个'app'(adsite
)。它的工作原理。但是当我将一些'py'文件复制到'app'文件夹时,我在views.py中出现No module named models
错误。和Parent module adsite.adsiteviews.mainhanlder does not exist.
我应该将新文件注册到'app'中的__init__
吗?新的应对文件是否违反了import
规则?
views.py
from django.http import HttpResponse
from django.template import Context, loader
from adsite.models import UserInfo
def showusers(request):
userlist = UserInfo.objects.all()
c = Context({
'userlist':userlist,
})
t = loader.get_template('users.html')
return HttpResponse(t.render(c))
复制文件: adsiteviews.py
class mainhanlder(TemplateView)
def get(self):
""" """
variables = {
'user': self.get_current_user(),
'mchosts' : MCHOSTS,
'servers' : servers}
index_templ = tmpl_lookup.get_template("index.html")
body = index_templ.render(**variables)
self.write(body)
urls.py
urlpatterns = patterns('',
# Examples:
url(r'^$', 'adsite.adsiteviews.mainhandler.as_View()'),
url(r'^users/$', 'adsite.views.showusers'),
我没有关于这个问题的线索。任何建议,将不胜感激。你的时间。
答案 0 :(得分:0)
首先,你的urlconf是完全错误的;您不能像使用基于函数的视图一样调用基于类的视图。具体来说,您的urls.py应如下所示:
from adsite.adsiteviews import mainhandler
urlpatterns = patterns('',
# Examples:
url(r'^$', mainhandler.as_View()),
url(r'^users/$', 'adsite.views.showusers'),
其次,错误No module named models
可能意味着:您需要在adsite
目录中包含名为models.py的文件,并且它应包含UserInfo
模型定义。我不知道你怎么没有models.py,因为它通常是由commant startapp
默认创建的。