所以我在本地测试了我的项目,一切似乎都很完美。
虽然,当我将项目推送到我的heroku服务器时,除了一个链接之外的所有内容似乎都不起作用。在请求页面时,我在/ locations / add / error中得到了TemplateDoesNotExist。再次,这个页面在本地工作,那么页面怎么可能不存在?
这是urls.py片段:
urlpatterns = patterns(
'',
url(r'^add/$', login_required(AddLocation.as_view()), name="add_location"),
)
观点:
class AddLocation(View):
template_name = "dash/Addlocation.html"
form = locationForm()
def get(self, request, *args, **kwargs):
user = User.objects.get(username=request.user.username)
self.form.fields['existing_regions'].queryset = Region.objects.filter(location__manager=user)
return render(request, self.template_name, {'form': self.form})
和完整的追溯:
Traceback:
File "/app/.heroku/python/lib/python2.7/site-packages/django/core/handlers/base.py" in get_response
112. response = wrapped_callback(request, *callback_args, **callback_kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/django/contrib/auth/decorators.py" in _wrapped_view
22. return view_func(request, *args, **kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/django/views/generic/base.py" in view
69. return self.dispatch(request, *args, **kwargs)
File "/app/.heroku/python/lib/python2.7/site-packages/django/views/generic/base.py" in dispatch
87. return handler(request, *args, **kwargs)
File "/app/pinpoint/apps/locationmanager/views.py" in get
39. return render(request, self.template_name, {'form': self.form})
File "/app/.heroku/python/lib/python2.7/site-packages/django/shortcuts/__init__.py" in render
53. return HttpResponse(loader.render_to_string(*args, **kwargs),
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/loader.py" in render_to_string
162. t = get_template(template_name)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/loader.py" in get_template
138. template, origin = find_template(template_name)
File "/app/.heroku/python/lib/python2.7/site-packages/django/template/loader.py" in find_template
131. raise TemplateDoesNotExist(name)
Exception Type: TemplateDoesNotExist at /locations/add/
Exception Value: dash/Addlocation.html
这是我的模板目录:
TEMPLATE_DIRS = (
# Put strings here, like "/home/html/django_templates" or "C:/www/django/templates".
# Always use forward slashes, even on Windows.
# Don't forget to use absolute paths, not relative paths.
os.path.join(BASE_DIR, '../templates'),
)
这是我按要求安装的应用程序:
INSTALLED_APPS = (
'django.contrib.auth',
'django.contrib.contenttypes',
'django.contrib.sessions',
'django.contrib.sites',
'django.contrib.messages',
'django.contrib.staticfiles',
'django.contrib.formtools',
#'rest_framework',
# Uncomment the next line to enable the admin:
'django.contrib.admin',
# Uncomment the next line to enable admin documentation:
'django.contrib.admindocs',
#'pinpoint.apps.careers',
#'pinpoint.apps.contact',
'pinpoint.profile',
'south',
'pinpoint.apps.beaconmanager',
'pinpoint.apps.api',
'pinpoint.apps.geofencemanager',
'pinpoint.apps.locationmanager',
'pinpoint.apps.messagemanager',
'django_extensions',
)
我的模板加载器:
TEMPLATE_LOADERS = (
'django.template.loaders.filesystem.Loader',
'django.template.loaders.app_directories.Loader',
# 'django.template.loaders.eggs.Loader',
)
如果需要,我可以提供更多详细信息。任何人都知道为什么这个链接在heroku上不存在但在本地存在?
答案 0 :(得分:0)
好的,我已经意识到出了什么问题。
两件事:
django.core.urlresolvers import reverse
template_name = "dash/Addlocation.html"
需要更改为template_name = "dash/AddLocation.html"
感谢那些指引我正确方向的人。