Новые скопированные файлы нарушали правила импорта?

Я создал проект django, используя django 1.4.2. Есть одно "приложение" (adsite) в этом проекте. И это работает. Но когда я скопировал некоторые файлы 'py' в папку 'app', я получил No module named models ошибка в views.py . а также Parent module adsite.adsiteviews.mainhanlder does not exist. Должен ли я зарегистрировать новые файлы в __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 ответ

Прежде всего, ваш 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 Вероятно, это означает, что вам нужно иметь файл с именем models.py в вашем adsite DIR, и он должен содержать UserInfo определение модели. Я не уверен, почему у вас нет models.py, поскольку он обычно создается коммандером startapp по умолчанию.

Другие вопросы по тегам