2013-04-30 123 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"),