2013-04-30 121 views
0

我发现Django实验,nexus和gargoyle与Django 1.5不兼容。幸运的是,几乎所有的问题都通过引用第一个参数到“url”模板标签的每一处发生。django实验和Django 1.5:NoReverseMatch错误

我坚持反对的东西我一直无法弄清楚 - 我收到以下错误,当我去我的目标页:

NoReverseMatch at /trial/trial1/ 
Reverse for 'experiment_goal' with arguments '(u'clicktrynow',)' and keyword arguments '{}' not found. 

我跑的Django 1.5。 1和Py​​thon 2.7.3在runserver上。我也可以在Heroku的Python 2.7.4中重现这一点。

我的目标页面(达到该页面完成目标)有这一行吧:

{% experiment_goal "clicktrynow" %} 

的experiment_goal templatetag似乎自动包含在这一点上实验/ goal.html模板。实验/ goal.html包含:

<img src="{% url 'experiment_goal' goal_name %}?v={{ random_number }}" height="1" width="1" /> 

(我已经固定在引用 'experiment_goal'。)

的URL模式的Django的实验应用包含此行:

url(r'^goal/(?P<goal_name>.*)$', 'record_experiment_goal', name="experiment_goal"), 

最后,我的settings.py与django实验相关的行是:

EXPERIMENTS_REDIS_HOST = get_env_variable('REDISTOGO_URL', default='redis://localhost:6379') 
EXPERIMENTS_REDIS_PORT = 6379 
EXPERIMENTS_REDIS_DB = 0 
INSTALLED_APPS += ('django.contrib.humanize', 'nexus', 'gargoyle', 'experiments',) 
MIDDLEWARE_CLASSES += ('experiments.middleware.ExperimentsMiddleware',) 
EXPERIMENTS_GOALS = ('clicktrynow',) 

我是Django的新手,b所有这一切似乎都应该起作用。我错过了什么?

更新:我的项目的urls.py不包含来自django实验的urls.py。文档没有说你需要。但也许我应该。调查...

+0

RE:您的更新,是的,你将需要包括除非这里有一些魔法,否则任何模式的URL都会注册99%的时间。 – 2013-04-30 01:28:32

回答

0

Django的,实验文档不提编辑urls.py,但该示例项目显示了你,你需要:

url(r'experiments/', include('experiments.urls')), 
url(r'^goal/$', TemplateView.as_view(template_name="goal.html"), name="goal"),