NoReverseMatch at /natrium/script/4c55be7f74312bfd435e4f672e83f44374a046a6aa08729aad6b0b1ab84a8274/
Reverse for 'run_details' with arguments '()' and keyword arguments '{'script_text': u'print "happy"', 'run_id': '6b2f9127071968c099673254fb3efbaf'}' not found.
Это выдержка из моих views.py
run_id = new_run.run_id
if not run_id:
raise AssertionError("bad run id")
# I tried with args=[run_id, clean['script_text']] too
return HttpResponseRedirect(reverse('run_details', kwargs={'run_id':run_id, 'script_text':clean['script_text']}))
который по очереди вызывает эту функцию просмотра
def run_details(request, run_id, script_text):
"""
Displays the details of a given run.
"""
run = Run(run_id)
run.update(request.user)
codebundle = CodeBundle(run.cbid)
codebundle.update(request.user)
return render_response(request, "graphyte/runs/run_script.html",
{'run':run, 'codebundle':codebundle, 'files':run.artifacts, 'bundle':codebundle,
'source_code': script_text
})
Теперь это мой urls.py. Фактические представления перенаправления находятся в другом приложении (вроде безумно, но что угодно ...).
urlpatterns = patterns("webclient.apps.codebundles.views",
# many.....
url(r"^cb/newfolder/$", 'codebundle_newfolder', name="codebundle_newfolder"),
)
urlpatterns += patterns('webclient.apps.runs.views',
url(r"^run_details/(?P<run_id>\w+)/$", 'run_details', name="run_details"),)
Это становится очень неприятно за последние три часа. Я не уверен, что происходит. Может кто-нибудь помочь мне отладить это?
Спасибо.
В первоначальном плане не было script_text, и я использовал только args = ['run_id']. Оно работает. Другими словами, удалите script_text из двух представлений, все будет работать.
EDIT
Извините за путаницу. Текст скрипта - это просто переменная контекста, которую мне нужно передать в обратный пункт назначения, и оттуда я отображаю свой шаблон. URL должны отображать только run_id.