django似乎视图功能不起作用

时间:2016-09-28 07:50:51

标签: python django

我正在尝试写一个FBV来删除一个主题,但是有些问题我无法弄明白。这是Django 1.7.1。以下是相关代码。

模型沟通:

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

URLconf:

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,表单显示Communication对象。如果我仍然单击取消按钮,只需刷新页面并且没有任何更改。 那么我该如何解决呢?请帮帮我!

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。修改后,它执行得很好。

1 个答案:

答案 0 :(得分: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是正确的。