2016-09-28 64 views
-1

我想寫一個FBV來刪除一個主題,但有一些問題我找不出來。它是Django 1.7.1。以下是相關的代碼。django看來func不工作

該模型的通信:

... 
@models.permalink 
def get_delete_url(self): 
    return 'comm_delete', [self.uuid] 

URL配置:

url(r'^(?P<uuid>[\w-]+)/delete/$', views.comm_delete, name='comm_delete'), 

的看法:

def comm_delete(request, uuid): 
    obj = get_object_or_404(Communication, uuid=uuid) 
    account = Account.objects.get(id=obj.account.id) 
    if request.method == 'POST': 
     obj.delete() 
     return HttpResponseRedirect(reverse('crmapp.accounts.views.account_detail', args=(account.uuid,))) 
    return render(request, 'subject_confirm_delete.html', {'object_name': 'Communication', 'object': obj}) 

當我點擊

<a class="cancel" href="{{ comm.get_delete_url }}"></a> 

將頁面移動到uuid/delete/url,窗體顯示通信對象。如果我仍然點擊取消按鈕,只需刷新頁面,沒有任何改變。 那麼我該如何解決它?請幫幫我!

的object_confirm_delete.html: object_confirm_delete.html

點擊後頁面取消鍵: clicked_move_to_page

的urls.py在應用通訊這樣的:

url(r'^(?P<uuid>[\w-]+)/', views.comm_detail, name='comm_detail'), 
url(r'^(?P<uuid>[\w-]+)/delete/$', views.comm_delete, name='comm_delete'), 

,你可以看到,第一個在最後沒有'$',所以當我鏈接第二個URL時,第一個的正則表達式匹配並執行視圖comm_detail。修改後,它執行得很好。

+2

我不明白當你點擊那個鏈接時你還期望發生什麼。 –

+0

請發表您的'subject_confirm_delete.html'。 – Selcuk

+0

@Selcuk更新,謝謝 – Charles

回答

0

的urls.py在應用通訊這樣的:

url(r'^(?P<uuid>[\w-]+)/', views.comm_detail, name='comm_detail'), 
url(r'^(?P<uuid>[\w-]+)/delete/$', views.comm_delete, name='comm_delete'), 

,你可以看到,第一個沒有「$」結尾,所以當我連接第二個的URL,第一一個正則表達式匹配並執行視圖comm_detail。修改後,它執行得很好。這意味着FBV是正確的。