2011-06-28 141 views
1

我似乎正在捕獲NoReverseMatch錯誤。我不太確定是什麼導致了這個問題。看看完整的錯誤。Django:在呈現錯誤時獲取NoReverseMatch

Caught NoReverseMatch while rendering: Reverse for 'mmc.views.edit_note' with arguments '(1L, '')' and keyword arguments '{}' not found. 

在我的get_client頁面上。我有一個鏈接到編輯註釋頁面。我假設問題可能出現在我的模板中。我認爲note.pk是問題。

<a href="{% url mmc.views.edit_notes client.pk note.pk %}"> Edit Note</a> 

這裏還有一些可以提供幫助的信息。 urls.py

(r'^clients/(?P<client_id>\d+)/$', views.get_client), 
(r'^clients/notes/(?P<client_id>\d+)(?P<note_id>\d+)$', views.edit_notes), 

views.py

@login_required 
def edit_notes(request, client_id = 0, note_id = 0): 
    client = None 
    note = None 
    try: 
     client = models.Client.objects.get(pk = client_id) 
     note = models.Note.objects.get(pk = note_id) 
    except: 
     return HttpResponseNotFound() 

    if request.method == 'POST': 
     form = forms.NoteForm(request.POST, instance=note) 
     if form.is_valid(): 
      note = form.save(commit=False) 
      note.user = request.user 
      note.client = client 
      note.save(True) 
      request.user.message_set.create(message = "Note is successfully added.") 
      return HttpResponse("<script language=\"javascript\" type=\"text/javascript\">window.opener.location = window.opener.location; window.close();</script>") 
    else: 
     form = forms.NoteForm(instance=note) 

    return render_to_response('note_form.html', {'form':form, 'client':client, 'note':note}, context_instance = RequestContext(request)) 

* 編輯:*似乎已經糾正大部分這裏有一些變化我已經作出。

模板

{% for note in notes %} 
     <a href="{% url mmc.views.edit_note client.pk note.pk %}" onclick="return showAddAnotherPopup(this);"> Edit Note</a> 
{% endfor%} 

urls.py

(r'^clients/notes/(?P<client_id>\d+)/(?P<note_id>\d+)/$', views.edit_note) 

現在唯一的問題是,它會顯示所有鏈接到每個編輯表單筆記單個客戶端的。我只想要最新的筆記和最新的筆記的鏈接。有沒有可能的方法?

回答

0

(r'^clients/(?P<client_id>\d+)/$', views.get_client)應該像url(r'^clients/(?P<client_id>\d+)/$', views.get_client, name='MY_URL_NAME')然後用{% url MY_URL_NAME client.pk %}

打來電話,從django.conf.urls.defaults

1

client.pknote.pk是空值,所以它們不匹配正則表達式。

+0

導入url如果我只是'' Edit Note我沒有得到一個非空值 – Shehzad009