2

“有效 django”教程中的示例设置以下列方式工作:

  • 在contacts_list 页面上,用户单击“删除”。
  • DeleteView 重定向到确认删除页面。
  • 用户单击确认(或取消)按钮并被重定向回contacts_list 页面。

我想做的是:

  • 单击“删除”并弹出引导模式
  • 在模态中确认删除(或取消)
  • 然后返回contacts_list 页面。
  • 此外,我想对编辑和创建做同样的事情。删除似乎是最简单的情况。

查找类似的主题,模态似乎并没有真正调用链接(/视图),jquery/ajax 应该能够解决这个问题。我对概念和最佳实践仍然有些不清楚。任何见解表示赞赏。

网址.py

url(r'^$', contacts.views.ContactListView.as_view(), name='contacts-list',), 
url(r'^new$', cts.views.CreateContactView.as_view(), name='contacts-new',),
url(r'^edit/(?P<pk>\d+)$', contacts.views.UpdateContactView.as_view(), name='contacts-edit',), 
url(r'^delete/(?P<pk>\d+)$', contacts.views.DeleteContactView.as_view(), name='contacts-delete',), 
url(r'^detail/(?P<pk>\d+)$', contacts.views.ContactDetailView.as_view(), name='contacts-view',), 

视图.py

class ContactListView(ListView):
    model = Contact
    template_name = 'contact_list.html'

class DeleteContactView(DeleteView):
    model = Contact
    template_name = 'delete_contact.html'

    def get_success_url(self):
        return reverse('contacts-list') 

联系人列表.html

{% for contact in object_list %}
    <li><h3>{{ contact.first_name }} </h3>
        <a href="{% url "contacts-edit" pk=contact.id %}">edit</a>
        <a href="{% url "contacts-delete" pk=contact.id %}">delete</a>
</li>
{% endfor %}
4

1 回答 1

0

您需要省略 django 的 DeleteView 提供的验证步骤。不要费心发送 ajax 调用。

首先,弄清楚如何显示模态表单。

然后您只需将表单方法声明为 POST(GET 将为您提供确认模板)并保持操作不变。

于 2013-12-13T22:03:14.190 回答