重定向时的 NoReverseMatch 错误
网址
url(r'^add/$', 'advice.views.add_new_advice'),
url(r'^$', 'advice.views.index'),
url(r'^(?P<advice_id>\d+)/$', 'advice.views.detail'),
视图
def add_new_advice(request):
if request.method == "POST":
form = AdviceForm(request.POST)
if form.is_valid():
new_advice = form.cleaned_data["advice"]
advice = Advice(advice = new_advice)
advice.save()
return redirect('detail', advice_id = advice.id)
else:
form = AdviceForm()
return render_to_response("create.html", {"form" : form},
context_instance=RequestContext(request))
def detail(request, advice_id):
try:
advice = Advice.objects.get(pk = advice_id)
except Advice.DoesNotExist:
return redirect('index')
return render_to_response("detail.html", {"advice" : advice})
def index(request):
advices = Advice.objects.all()
advice = choice(advices)
return redirect('detail', advice_id = advice.id)
嘿,我遇到一个问题。每次我想跳转到详细信息的功能时,都会出现 NoReverseMatch 的错误,显示在 / 这个地方。请帮帮我。
NoReverseMatch at /
Reverse for 'detail' with arguments '()' and keyword arguments '{'advice_id': 7}' not found.
1 个回答
0
你没有调用任何叫做 "detail"
的东西,所以它找不到。你可以在你的 urls.py 文件里添加这个名字,或者使用函数的完整路径,或者直接传递函数本身,而不是用字符串。