我正在尝试写一个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:
点击页面取消按钮:
应用程序中的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。修改后,它执行得很好。
答案 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是正确的。