Heroku上的Django,url模板标记导致'ParseResult'对象无法调用

时间:2012-03-20 01:36:23

标签: django heroku

有没有人知道Heroku在部署时的变化?我有一个使用Ubuntu 11.10的本地开发机器设置,我的项目安装到一个venv,所有包通过pip管理。相应的requirements.txt在我的仓库中,并在推送时发送到Heroku。我的本地计算机和Heroku都在AWS上访问相同的RDS实例。

在本地运行Django dev服务器(manage.py runserver)会产生一个工作页面。尝试运行(通过我的Procfile)Heroku上的开发服务器导致模板{%url foobar%}出错,如下所示:

Caught TypeError while rendering: 'ParseResult' object is not callable

我的requirements.txt包含以下内容:

Django==1.3.1
MySQL-python==1.2.3
PIL==1.1.7
amqplib==1.0.2
anyjson==0.3.1
boto==2.2.2
celery==2.5.1
distribute==0.6.24
django-celery==2.5.1
django-kombu==0.9.4
django-picklefield==0.2.0
django-piston==0.2.3
gevent==0.13.6
greenlet==0.3.4
gunicorn==0.14.2
httplib2==0.7.4
kombu==2.1.1
python-dateutil==1.5
wsgiref==0.1.2
zencoder==0.4

有人有想法吗?

2 个答案:

答案 0 :(得分:1)

虽然我担心我无法提供有关您的问题的更多信息,但关于“有没有人知道Heroku在部署时更改了什么?”的问题,然后对于Django应用程序,它只是以下内容:

Heroku DB config appended to your settings.py

这只是通过拉入环境中的DATABASES并相应地解析它来覆盖现有的DATABASE_URL设置。

Basic Procfile autogenerated if you don't already have one

不要依赖于此,因为生成的Procfile只使用Django开发服务器(将其替换为例如one running gunicorn),但只需要启动基本项目即可。

5MB (free) shared database added

这只是确保您的应用可以访问数据库。


现在,我没有看到其中任何一个会导致您遇到的问题,但you seem to have that sorted这是好的。

答案 1 :(得分:0)

在使用django-piston时,我遇到了类似的问题(实际上在urls.py中,而不是在模板渲染中)。我设法通过更改

来修复它
from django.conf.urls.defaults import url

from django.conf.urls.defaults import url as django_url

然后将urlpatterns中的所有url()指令更改为django_url()。

这也修复了我在管理页面中看到的模板。我不确定这是否是同一件事,但可能是一次富有成效的调查。