新复制的文件是否会破坏导入规则?

时间:2013-01-18 02:45:24

标签: python django django-views django-class-based-views class-based-views

我使用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'),

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

1 个答案:

答案 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默认创建的。