0

我使用 django 1.4.2 创建了一个 django 项目。这个项目中有一个“应用程序”(adsite)。它有效。但是当我将一些“py”文件复制到“app”文件夹中时, No module named modelsviews.py 中出现错误。Parent module adsite.adsiteviews.mainhanlder does not exist.我应该__init__在“应用程序”中注册新文件吗?新的处理文件是否违反了import规则?

视图.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)

网址.py

urlpatterns = patterns('',
    # Examples:
    url(r'^$', 'adsite.adsiteviews.mainhandler.as_View()'),
    url(r'^users/$', 'adsite.views.showusers'),

我对这个问题没有任何线索。任何建议,将不胜感激。谢谢你的时间。

4

1 回答 1

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,因为它通常是startapp默认由commant创建的。

于 2013-01-18T23:33:12.097 回答