Новые скопированные файлы нарушали правила импорта?
Я создал проект 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
по умолчанию.